mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
scsi: ufs: Fix pm_runtime count in reset flow
ufshcd_probe_hba() puts pm_runtime all the time. So, during the reset flow, we need to get one. pm_runtime_get_sync (1) ufshcd_async_scan pm_runtime_get_sync (2) ufshcd_hold_all ufshcd_probe_hba - pm_runtime_put_sync (1) - ufshcd_reset_and_restore - ufshcd_detect_device - ufshcd_host_reset_and_restore - ufshcd_probe_hba - pm_runtime_put_sync (0) ufshcd_release_all pm_runtime_put_sync (-1) Bug: 157744625 Signed-off-by: Jaegeuk Kim <jaegeuk@google.com> Change-Id: I2d5696d6143842790fa25218beda12b71cfcc1d6 Signed-off-by: Yaroslav Furman <yaro330@gmail.com> Signed-off-by: alanndz <alanndz7@gmail.com> Signed-off-by: azrim <mirzaspc@gmail.com>
This commit is contained in:
parent
ac6cccc8c1
commit
8fc1377131
@ -7966,8 +7966,12 @@ static int ufshcd_host_reset_and_restore(struct ufs_hba *hba)
|
||||
ufshcd_set_clk_freq(hba, true);
|
||||
|
||||
err = ufshcd_hba_enable(hba);
|
||||
if (err)
|
||||
if (err) {
|
||||
/* ufshcd_probe_hba() will put it */
|
||||
if (!ufshcd_eh_in_progress(hba) && !hba->pm_op_in_progress)
|
||||
pm_runtime_put_sync(hba->dev);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Establish the link again and restore the device */
|
||||
err = ufshcd_probe_hba(hba);
|
||||
@ -8018,6 +8022,8 @@ static int ufshcd_reset_and_restore(struct ufs_hba *hba)
|
||||
ufshcd_enable_irq(hba);
|
||||
|
||||
do {
|
||||
if (!ufshcd_eh_in_progress(hba) && !hba->pm_op_in_progress)
|
||||
pm_runtime_get_sync(hba->dev);
|
||||
err = ufshcd_detect_device(hba);
|
||||
} while (err && --retries);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user