Skip to content
Permalink
Browse files
scsi: ufs: disable auto hibern8 while entering suspend
If using auto hibern8 mode, need to disable auto hibern8 while
entering suspend.
When using auto hibern8 mode, it does not seem right to send a uic command
for entry into hibern8 in the next line(ufshcd_lik_state_transition(..))
It seem right to send after disable auto hibern8.

In addition, if the auto hibern8 mode supported, it is enabled in resume.
So it seems that it will be paired only when auto hibern8 is disabled
while entering suspend.

Signed-off-by: SEO HOYOUNG <hy50.seo@samsung.com>
  • Loading branch information
SEO HOYOUNG authored and intel-lab-lkp committed Jan 24, 2022
1 parent 9583aa8 commit 07442fb1071785299ef4ec421a37874e0d84babf
Showing 1 changed file with 13 additions and 0 deletions.
@@ -4204,6 +4204,18 @@ void ufshcd_auto_hibern8_update(struct ufs_hba *hba, u32 ahit)
}
EXPORT_SYMBOL_GPL(ufshcd_auto_hibern8_update);

void ufshcd_auto_hibern8_disable(struct ufs_hba *hba)
{
unsigned long flags;

if (!ufshcd_is_auto_hibern8_supported(hba))
return;

spin_lock_irqsave(hba->host->host_lock, flags);
ufshcd_writel(hba, 0, REG_AUTO_HIBERNATE_IDLE_TIMER);
spin_unlock_irqrestore(hba->host->host_lock, flags);
}

void ufshcd_auto_hibern8_enable(struct ufs_hba *hba)
{
unsigned long flags;
@@ -8925,6 +8937,7 @@ static int __ufshcd_wl_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op)
* with the link off, so do not check for bkops.
*/
check_for_bkops = !ufshcd_is_ufs_dev_deepsleep(hba);
ufshcd_auto_hibern8_disable(hba);
ret = ufshcd_link_state_transition(hba, req_link_state, check_for_bkops);
if (ret)
goto set_dev_active;

0 comments on commit 07442fb

Please sign in to comment.