The UFS driver allowed BKOPS and WB Flush operations to be completed on Runtime suspend. Adding the DeepSleep support, this is no longer true: the driver will ignore BKOPS and WB Flush states, and force a link state transition to UIC_LINK_OFF_STATE. Do not ignore BKOPS and WB Flush on runtme suspend flow. fixes: fe1d4c2ebcae (scsi: ufs: Add DeepSleep feature) Suggested-by: Alex Lemberg <alex.lemberg@xxxxxxx> Signed-off-by: Avri Altman <avri.altman@xxxxxxx> --- drivers/scsi/ufs/ufshcd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 58d7f264c664..1a0cac670aba 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -8755,7 +8755,8 @@ static int ufshcd_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op) * In the case of DeepSleep, the device is expected to remain powered * with the link off, so do not check for bkops. */ - check_for_bkops = !ufshcd_is_ufs_dev_deepsleep(hba); + check_for_bkops = !ufshcd_is_ufs_dev_deepsleep(hba) || + hba->dev_info.b_rpm_dev_flush_capable; ret = ufshcd_link_state_transition(hba, req_link_state, check_for_bkops); if (ret) goto set_dev_active; -- 2.25.1