scsi: ufs: disable interrupt during clock-gating
authorStanley Chu <stanley.chu@mediatek.com>
Sat, 7 Dec 2019 12:22:01 +0000 (20:22 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 20 Dec 2019 03:08:54 +0000 (22:08 -0500)
Similar to suspend, ufshcd interrupt can be disabled since there won't be
any host controller transaction expected till clocks ungated.

Link: https://lore.kernel.org/r/1575721321-8071-3-git-send-email-stanley.chu@mediatek.com
Reviewed-by: Asutosh Das <asutoshd@codeaurora.org>
Reviewed-by: Avri Altman <avri.altman@wdc.com>
Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ufs/ufshcd.c

index f55cf03..a6936be 100644 (file)
@@ -1466,6 +1466,8 @@ static void ufshcd_ungate_work(struct work_struct *work)
        spin_unlock_irqrestore(hba->host->host_lock, flags);
        ufshcd_setup_clocks(hba, true);
 
+       ufshcd_enable_irq(hba);
+
        /* Exit from hibern8 */
        if (ufshcd_can_hibern8_during_gating(hba)) {
                /* Prevent gating in this path */
@@ -1612,6 +1614,8 @@ static void ufshcd_gate_work(struct work_struct *work)
                ufshcd_set_link_hibern8(hba);
        }
 
+       ufshcd_disable_irq(hba);
+
        if (!ufshcd_is_link_active(hba))
                ufshcd_setup_clocks(hba, false);
        else