Message ID | 20241219-ufs-qcom-suspend-fix-v3-0-63c4b95a70b9@linaro.org |
---|---|
Headers | show |
Series | scsi: ufs: qcom: Suspend fixes | expand |
On Thu, Dec 19, 2024 at 10:20:40PM +0530, Manivannan Sadhasivam via B4 Relay wrote: > Hi, > > This series fixes the several suspend issues on Qcom platforms. Patch 1 fixes > the resume failure with spm_lvl=5 suspend on most of the Qcom platforms. For > this patch, I couldn't figure out the exact commit that caused the issue. So I > used the commit that introduced reinit support as a placeholder. > > Patch 4 fixes the suspend issue on SM8550 and SM8650 platforms where UFS > PHY retention is not supported. Hence the default spm_lvl=3 suspend fails. So > this patch configures spm_lvl=5 as the default suspend level to force UFSHC/ > device powerdown during suspend. This supersedes the previous series [1] that > tried to fix the issue in clock drivers. > > This series is tested on Qcom SM8550 QRD, SM8650 QRD and Qcom RB5 boards. > > [1] https://lore.kernel.org/linux-arm-msm/20241107-ufs-clk-fix-v1-0-6032ff22a052@linaro.org > Martin, can you please pick up this series? - Mani > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > --- > Changes in v3: > - Added a patch that honors the runtime/system PM levels set by host drivers. > Otherwise patch 4 doesn't have any effect. This was discovered with SM8650 > QRD. > - Collected tags > - Link to v2: https://lore.kernel.org/r/20241213-ufs-qcom-suspend-fix-v2-0-1de6cd2d6146@linaro.org > > Changes in v2: > - Changed 'ufs_qcom_drvdata::quirks' type to 'enum ufshcd_quirks' > - Collected tags > - Link to v1: https://lore.kernel.org/r/20241211-ufs-qcom-suspend-fix-v1-0-83ebbde76b1c@linaro.org > > --- > Manivannan Sadhasivam (4): > scsi: ufs: qcom: Power off the PHY if it was already powered on in ufs_qcom_power_up_sequence() > scsi: ufs: core: Honor runtime/system PM levels if set by host controller drivers > scsi: ufs: qcom: Allow passing platform specific OF data > scsi: ufs: qcom: Power down the controller/device during system suspend for SM8550/SM8650 SoCs > > drivers/ufs/core/ufshcd-priv.h | 6 ------ > drivers/ufs/core/ufshcd.c | 10 ++++++---- > drivers/ufs/host/ufs-qcom.c | 31 +++++++++++++++++++------------ > drivers/ufs/host/ufs-qcom.h | 5 +++++ > include/ufs/ufshcd.h | 2 -- > 5 files changed, 30 insertions(+), 24 deletions(-) > --- > base-commit: 40384c840ea1944d7c5a392e8975ed088ecf0b37 > change-id: 20241211-ufs-qcom-suspend-fix-5618e9c56d93 > > Best regards, > -- > Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > >
Hi, This series fixes the several suspend issues on Qcom platforms. Patch 1 fixes the resume failure with spm_lvl=5 suspend on most of the Qcom platforms. For this patch, I couldn't figure out the exact commit that caused the issue. So I used the commit that introduced reinit support as a placeholder. Patch 4 fixes the suspend issue on SM8550 and SM8650 platforms where UFS PHY retention is not supported. Hence the default spm_lvl=3 suspend fails. So this patch configures spm_lvl=5 as the default suspend level to force UFSHC/ device powerdown during suspend. This supersedes the previous series [1] that tried to fix the issue in clock drivers. This series is tested on Qcom SM8550 QRD, SM8650 QRD and Qcom RB5 boards. [1] https://lore.kernel.org/linux-arm-msm/20241107-ufs-clk-fix-v1-0-6032ff22a052@linaro.org Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> --- Changes in v3: - Added a patch that honors the runtime/system PM levels set by host drivers. Otherwise patch 4 doesn't have any effect. This was discovered with SM8650 QRD. - Collected tags - Link to v2: https://lore.kernel.org/r/20241213-ufs-qcom-suspend-fix-v2-0-1de6cd2d6146@linaro.org Changes in v2: - Changed 'ufs_qcom_drvdata::quirks' type to 'enum ufshcd_quirks' - Collected tags - Link to v1: https://lore.kernel.org/r/20241211-ufs-qcom-suspend-fix-v1-0-83ebbde76b1c@linaro.org --- Manivannan Sadhasivam (4): scsi: ufs: qcom: Power off the PHY if it was already powered on in ufs_qcom_power_up_sequence() scsi: ufs: core: Honor runtime/system PM levels if set by host controller drivers scsi: ufs: qcom: Allow passing platform specific OF data scsi: ufs: qcom: Power down the controller/device during system suspend for SM8550/SM8650 SoCs drivers/ufs/core/ufshcd-priv.h | 6 ------ drivers/ufs/core/ufshcd.c | 10 ++++++---- drivers/ufs/host/ufs-qcom.c | 31 +++++++++++++++++++------------ drivers/ufs/host/ufs-qcom.h | 5 +++++ include/ufs/ufshcd.h | 2 -- 5 files changed, 30 insertions(+), 24 deletions(-) --- base-commit: 40384c840ea1944d7c5a392e8975ed088ecf0b37 change-id: 20241211-ufs-qcom-suspend-fix-5618e9c56d93 Best regards,