Skip to content

Commit 2167be5

Browse files
author
Ewan D. Milne
committed
ata: libata-core: Add ATA_HORKAGE_NOLPM for AMD Radeon S3 SSD
JIRA: https://issues.redhat.com/browse/RHEL-23829 Upstream Status: From upstream linux mainline Commit 7627a0e ("ata: ahci: Drop low power policy board type") dropped the board_ahci_low_power board type, and instead enables LPM if: -The AHCI controller reports that it supports LPM (Partial/Slumber), and -CONFIG_SATA_MOBILE_LPM_POLICY != 0, and -The port is not defined as external in the per port PxCMD register, and -The port is not defined as hotplug capable in the per port PxCMD register. Partial and Slumber LPM states can either be initiated by HIPM or DIPM. For HIPM (host initiated power management) to get enabled, both the AHCI controller and the drive have to report that they support HIPM. For DIPM (device initiated power management) to get enabled, only the drive has to report that it supports DIPM. However, the HBA will reject device requests to enter LPM states which the HBA does not support. The problem is that AMD Radeon S3 SSD drives do not handle low power modes correctly. The problem was most likely not seen before because no one had used this drive with a AHCI controller with LPM enabled. Add a quirk so that we do not enable LPM for this drive, since we see command timeouts if we do (even though the drive claims to support both HIPM and DIPM). Fixes: 7627a0e ("ata: ahci: Drop low power policy board type") Cc: stable@vger.kernel.org Reported-by: Doru Iorgulescu <doru.iorgulescu1@gmail.com> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218832 Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> Reviewed-by: Damien Le Moal <dlemoal@kernel.org> Signed-off-by: Niklas Cassel <cassel@kernel.org> (cherry picked from commit 4738803) Signed-off-by: Ewan D. Milne <emilne@redhat.com>
1 parent e8e310c commit 2167be5

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

drivers/ata/libata-core.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4293,6 +4293,9 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
42934293
ATA_HORKAGE_ZERO_AFTER_TRIM |
42944294
ATA_HORKAGE_NOLPM },
42954295

4296+
/* AMD Radeon devices with broken LPM support */
4297+
{ "R3SL240G", NULL, ATA_HORKAGE_NOLPM },
4298+
42964299
/* These specific Samsung models/firmware-revs do not handle LPM well */
42974300
{ "SAMSUNG MZMPC128HBFU-000MV", "CXM14M1Q", ATA_HORKAGE_NOLPM },
42984301
{ "SAMSUNG SSD PM830 mSATA *", "CXM13D1Q", ATA_HORKAGE_NOLPM },

0 commit comments

Comments
 (0)