scsi: ufs: ufs-mediatek: Fix wrong location for ref-clk delay
authorPeter Wang <peter.wang@mediatek.com>
Sat, 16 Oct 2021 00:58:02 +0000 (08:58 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 19 Oct 2021 02:38:35 +0000 (22:38 -0400)
Fix the location of delay for ref-clk gating and ungating in
ufs_mtk_setup_ref_clk().

Link: https://lore.kernel.org/r/20211016005802.7729-4-stanley.chu@mediatek.com
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com>
Signed-off-by: Peter Wang <peter.wang@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

index bc193ba46b31cc8a500771c9d8045340e8edeec0..d0a8e1319ab36b3376b91efa3cd34fbec85a3cb6 100644 (file)
@@ -247,9 +247,9 @@ static int ufs_mtk_setup_ref_clk(struct ufs_hba *hba, bool on)
 
        if (on) {
                ufs_mtk_ref_clk_notify(on, res);
-               ufshcd_delay_us(host->ref_clk_ungating_wait_us, 10);
                ufshcd_writel(hba, REFCLK_REQUEST, REG_UFS_REFCLK_CTRL);
        } else {
+               ufshcd_delay_us(host->ref_clk_gating_wait_us, 10);
                ufshcd_writel(hba, REFCLK_RELEASE, REG_UFS_REFCLK_CTRL);
        }
 
@@ -274,10 +274,10 @@ static int ufs_mtk_setup_ref_clk(struct ufs_hba *hba, bool on)
 
 out:
        host->ref_clk_enabled = on;
-       if (!on) {
-               ufshcd_delay_us(host->ref_clk_gating_wait_us, 10);
+       if (on)
+               ufshcd_delay_us(host->ref_clk_ungating_wait_us, 10);
+       else
                ufs_mtk_ref_clk_notify(on, res);
-       }
 
        return 0;
 }