]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ata: libata-eh: Update DIPM comments to reflect reality
authorNiklas Cassel <cassel@kernel.org>
Thu, 15 May 2025 13:56:23 +0000 (15:56 +0200)
committerDamien Le Moal <dlemoal@kernel.org>
Tue, 20 May 2025 09:20:36 +0000 (18:20 +0900)
The comments describing which LPM policies that has DIPM enabled predates
the introduction of the LPM policies ATA_LPM_MIN_POWER_WITH_PARTIAL and
ATA_LPM_MED_POWER_WITH_DIPM. Update the DIPM comments to reflect reality.

Also remove the sentence that claims that "Order device and link
configurations such that the host always allows DIPM requests."

This comment is written before 24e0e61db3cb ("ata: libata: disallow
dev-initiated LPM transitions to unsupported states").

Even though the set_lpm() call is done before enabling DIPM, the host will
not always allow DIPM requests. For all LPM polcies where DIPM is enabled,
only DIPM requests to LPM states that are supported by the HBA will be
allowed.

Signed-off-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
drivers/ata/libata-eh.c

index b990c1ee0b12de7473d1ede8b0acf1210862f3cb..f39756a267514ed7642087735f60168fb17be718 100644 (file)
@@ -3443,10 +3443,9 @@ static int ata_eh_set_lpm(struct ata_link *link, enum ata_lpm_policy policy,
                return 0;
 
        /*
-        * DIPM is enabled only for MIN_POWER as some devices
-        * misbehave when the host NACKs transition to SLUMBER.  Order
-        * device and link configurations such that the host always
-        * allows DIPM requests.
+        * DIPM is enabled only for ATA_LPM_MIN_POWER,
+        * ATA_LPM_MIN_POWER_WITH_PARTIAL, and ATA_LPM_MED_POWER_WITH_DIPM, as
+        * some devices misbehave when the host NACKs transition to SLUMBER.
         */
        ata_for_each_dev(dev, link, ENABLED) {
                bool hipm = ata_id_has_hipm(dev->id);
@@ -3505,7 +3504,11 @@ static int ata_eh_set_lpm(struct ata_link *link, enum ata_lpm_policy policy,
        if (ap && ap->slave_link)
                ap->slave_link->lpm_policy = policy;
 
-       /* host config updated, enable DIPM if transitioning to MIN_POWER */
+       /*
+        * Host config updated, enable DIPM if transitioning to
+        * ATA_LPM_MIN_POWER, ATA_LPM_MIN_POWER_WITH_PARTIAL, or
+        * ATA_LPM_MED_POWER_WITH_DIPM.
+        */
        ata_for_each_dev(dev, link, ENABLED) {
                if (policy >= ATA_LPM_MED_POWER_WITH_DIPM && !no_dipm &&
                    ata_id_has_dipm(dev->id)) {