|
@@ -3454,9 +3454,9 @@ static int ata_eh_maybe_retry_flush(struct ata_device *dev)
|
|
|
* @r_failed_dev: out parameter for failed device
|
|
|
*
|
|
|
* Enable SATA Interface power management. This will enable
|
|
|
- * Device Interface Power Management (DIPM) for min_power
|
|
|
- * policy, and then call driver specific callbacks for
|
|
|
- * enabling Host Initiated Power management.
|
|
|
+ * Device Interface Power Management (DIPM) for min_power and
|
|
|
+ * medium_power_with_dipm policies, and then call driver specific
|
|
|
+ * callbacks for enabling Host Initiated Power management.
|
|
|
*
|
|
|
* LOCKING:
|
|
|
* EH context.
|
|
@@ -3502,7 +3502,7 @@ static int ata_eh_set_lpm(struct ata_link *link, enum ata_lpm_policy policy,
|
|
|
hints &= ~ATA_LPM_HIPM;
|
|
|
|
|
|
/* disable DIPM before changing link config */
|
|
|
- if (policy != ATA_LPM_MIN_POWER && dipm) {
|
|
|
+ if (policy < ATA_LPM_MED_POWER_WITH_DIPM && dipm) {
|
|
|
err_mask = ata_dev_set_feature(dev,
|
|
|
SETFEATURES_SATA_DISABLE, SATA_DIPM);
|
|
|
if (err_mask && err_mask != AC_ERR_DEV) {
|
|
@@ -3545,7 +3545,7 @@ static int ata_eh_set_lpm(struct ata_link *link, enum ata_lpm_policy policy,
|
|
|
|
|
|
/* host config updated, enable DIPM if transitioning to MIN_POWER */
|
|
|
ata_for_each_dev(dev, link, ENABLED) {
|
|
|
- if (policy == ATA_LPM_MIN_POWER && !no_dipm &&
|
|
|
+ if (policy >= ATA_LPM_MED_POWER_WITH_DIPM && !no_dipm &&
|
|
|
ata_id_has_dipm(dev->id)) {
|
|
|
err_mask = ata_dev_set_feature(dev,
|
|
|
SETFEATURES_SATA_ENABLE, SATA_DIPM);
|