scsi: ufs: ufs-mediatek: Introduce default delay for reference clock
authorStanley Chu <stanley.chu@mediatek.com>
Sat, 16 Oct 2021 00:58:00 +0000 (08:58 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 19 Oct 2021 02:38:35 +0000 (22:38 -0400)
Introduce default delay time for gating or ungating reference clock instead
of ambiguous magic numbers.

The defined value is suitable for all current MediaTek UFS platforms.

Link: https://lore.kernel.org/r/20211016005802.7729-2-stanley.chu@mediatek.com
Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ufs/ufs-mediatek.c
drivers/scsi/ufs/ufs-mediatek.h

index d1696db..2c7d12a 100644 (file)
@@ -282,7 +282,7 @@ out:
 }
 
 static void ufs_mtk_setup_ref_clk_wait_us(struct ufs_hba *hba,
-                                         u16 gating_us, u16 ungating_us)
+                                         u16 gating_us)
 {
        struct ufs_mtk_host *host = ufshcd_get_variant(hba);
 
@@ -293,7 +293,7 @@ static void ufs_mtk_setup_ref_clk_wait_us(struct ufs_hba *hba,
                host->ref_clk_gating_wait_us = gating_us;
        }
 
-       host->ref_clk_ungating_wait_us = ungating_us;
+       host->ref_clk_ungating_wait_us = REFCLK_DEFAULT_WAIT_US;
 }
 
 static void ufs_mtk_dbg_sel(struct ufs_hba *hba)
@@ -1102,11 +1102,14 @@ static int ufs_mtk_apply_dev_quirks(struct ufs_hba *hba)
         * requirements.
         */
        if (mid == UFS_VENDOR_SAMSUNG)
-               ufs_mtk_setup_ref_clk_wait_us(hba, 1, 1);
+               ufs_mtk_setup_ref_clk_wait_us(hba, 1);
        else if (mid == UFS_VENDOR_SKHYNIX)
-               ufs_mtk_setup_ref_clk_wait_us(hba, 30, 30);
+               ufs_mtk_setup_ref_clk_wait_us(hba, 30);
        else if (mid == UFS_VENDOR_TOSHIBA)
-               ufs_mtk_setup_ref_clk_wait_us(hba, 100, 32);
+               ufs_mtk_setup_ref_clk_wait_us(hba, 100);
+       else
+               ufs_mtk_setup_ref_clk_wait_us(hba,
+                                             REFCLK_DEFAULT_WAIT_US);
 
        return 0;
 }
index c96b9b5..414dca8 100644 (file)
@@ -34,6 +34,7 @@
 #define REFCLK_ACK                  BIT(1)
 
 #define REFCLK_REQ_TIMEOUT_US       3000
+#define REFCLK_DEFAULT_WAIT_US      32
 
 /*
  * Other attributes