summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/ufs/ufshcd.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 29c779778f4e..3d6c8c766112 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -1516,6 +1516,9 @@ out:
static void ufshcd_init_hibern8_on_idle(struct ufs_hba *hba)
{
+ /* initialize the state variable here */
+ hba->hibern8_on_idle.state = HIBERN8_EXITED;
+
if (!ufshcd_is_hibern8_on_idle_allowed(hba))
return;
@@ -1524,7 +1527,6 @@ static void ufshcd_init_hibern8_on_idle(struct ufs_hba *hba)
INIT_WORK(&hba->hibern8_on_idle.exit_work, ufshcd_hibern8_exit_work);
hba->hibern8_on_idle.delay_ms = 10;
- hba->hibern8_on_idle.state = HIBERN8_EXITED;
hba->hibern8_on_idle.is_enabled = true;
hba->hibern8_on_idle.delay_attr.show =
@@ -7434,6 +7436,8 @@ static int ufshcd_resume(struct ufs_hba *hba, enum ufs_pm_op pm_op)
*/
if (ret || !ufshcd_is_link_active(hba))
goto vendor_suspend;
+ /* mark link state as hibern8 exited */
+ hba->hibern8_on_idle.state = HIBERN8_EXITED;
}
if (!ufshcd_is_ufs_dev_active(hba)) {