]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
scsi: ufs: ufs-pci: Fix S0ix/S3 for Intel controllers
authorAdrian Hunter <adrian.hunter@intel.com>
Fri, 24 Oct 2025 08:59:15 +0000 (11:59 +0300)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 30 Oct 2025 03:20:19 +0000 (23:20 -0400)
commitbb44826c3bdbf1fa3957008a04908f45e5666463
tree3da2bc0d08c17478789f0748dc12be6f88b3bd03
parentf838d624fd1183e07db86f3138bcd05fd7630a1e
scsi: ufs: ufs-pci: Fix S0ix/S3 for Intel controllers

Intel platforms with UFS, can support Suspend-to-Idle (S0ix) and
Suspend-to-RAM (S3).  For S0ix the link state should be HIBERNATE.  For
S3, state is lost, so the link state must be OFF.  Driver policy,
expressed by spm_lvl, can be 3 (link HIBERNATE, device SLEEP) for S0ix
but must be changed to 5 (link OFF, device POWEROFF) for S3.

Fix support for S0ix/S3 by switching spm_lvl as needed.  During suspend
->prepare(), if the suspend target state is not Suspend-to-Idle, ensure
the spm_lvl is at least 5 to ensure that resume will be possible from
deep sleep states.  During suspend ->complete(), restore the spm_lvl to
its original value that is suitable for S0ix.

This fix is first needed in Intel Alder Lake based controllers.

Fixes: 7dc9fb47bc9a ("scsi: ufs: ufs-pci: Add support for Intel ADL")
Cc: stable@vger.kernel.org
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Link: https://patch.msgid.link/20251024085918.31825-2-adrian.hunter@intel.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/host/ufshcd-pci.c