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

From: Runa Guo-oc
Date: Thu Apr 21 2022 - 05:45:55 EST


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