]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
ufs: Add UFSHCD_QUIRK_HIBERN_FASTAUTO
authorMarek Vasut <marek.vasut+renesas@mailbox.org>
Wed, 16 Aug 2023 15:05:51 +0000 (17:05 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 24 Aug 2023 17:47:43 +0000 (13:47 -0400)
Add UFSHCD_QUIRK_HIBERN_FASTAUTO quirk for host controllers which supports
auto-hibernate the capability but only FASTAUTO mode.

Ported from Linux kernel commit
2f11bbc2c7f3 ("scsi: ufs: core: Add UFSHCD_QUIRK_HIBERN_FASTAUTO")

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Tested-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
drivers/ufs/ufs.c
drivers/ufs/ufs.h

index da0550d98c691014377cb43d0b22b83bd8c04d6c..261ae2843c2b3caa6aacb4d52f1faab654ea50dd 100644 (file)
@@ -1631,8 +1631,13 @@ static int ufshcd_get_max_pwr_mode(struct ufs_hba *hba)
        if (hba->max_pwr_info.is_valid)
                return 0;
 
-       pwr_info->pwr_tx = FAST_MODE;
-       pwr_info->pwr_rx = FAST_MODE;
+       if (hba->quirks & UFSHCD_QUIRK_HIBERN_FASTAUTO) {
+               pwr_info->pwr_tx = FASTAUTO_MODE;
+               pwr_info->pwr_rx = FASTAUTO_MODE;
+       } else {
+               pwr_info->pwr_tx = FAST_MODE;
+               pwr_info->pwr_rx = FAST_MODE;
+       }
        pwr_info->hs_rate = PA_HS_MODE_B;
 
        /* Get the connected lane count */
index e5ddb6f64a9a81fe107c713e23efaa3d8b37ff21..638c10b5503ed22a97cdc309b8f15982948bfa30 100644 (file)
@@ -725,6 +725,12 @@ struct ufs_hba {
  */
 #define UFSHCD_QUIRK_BROKEN_64BIT_ADDRESS              BIT(1)
 
+/*
+ * This quirk needs to be enabled if the host controller has
+ * auto-hibernate capability but it's FASTAUTO only.
+ */
+#define UFSHCD_QUIRK_HIBERN_FASTAUTO                   BIT(2)
+
        /* Virtual memory reference */
        struct utp_transfer_cmd_desc *ucdl;
        struct utp_transfer_req_desc *utrdl;