[PATCH 0/2] ahci: Add some controls on actual LPM capability

Runa Guo-oc
2022-04-21T09:45:48Z

On some platform, when OS enables LPM by default (eg, min_power),
then, PhyRdy Change cannot be detected if ahci supports no LPM;
DIPM Slumber request cannot be disallowed if ahci's CAP.PSC is
set to '1' and CAP.SSC is cleared to '0', which may cause ahci
to be an uncertain state (same for Partial).

In ahci spec, PhyRdy Change cannot coexist with LPM;
when CAP.PSC/SSC is cleared to '0', the PxSCTL.IPM
field must be programmed to disallow device initiated
Partial/Slumber request.

Adds suports to control these cases on actual LPM capability.

Runa Guo-oc (2):
ahci: Add PhyRdy Change control on actual LPM capability
ahci: Add PxSCTL.IPM control on actual LPM capability

drivers/ata/ahci.c | 9 +++++++++
drivers/ata/libata-eh.c | 4 ++++
drivers/ata/libata-sata.c | 12 +++++++++++-
include/linux/libata.h | 4 ++++
4 files changed, 28 insertions(+), 1 deletion(-)

--
2.7.4