On 9/27/22 03:56, Limonciello, Mario wrote: > [Public] > > > >> -----Original Message----- >> From: Niklas Cassel <Niklas.Cassel@xxxxxxx> >> Sent: Monday, September 26, 2022 13:38 >> To: Damien Le Moal <damien.lemoal@xxxxxxxxxxxxxxxxxx>; Limonciello, >> Mario <Mario.Limonciello@xxxxxxx> >> Cc: Niklas Cassel <Niklas.Cassel@xxxxxxx>; stable@xxxxxxxxxxxxxxx; Jaap >> Berkhout <j.j.berkhout@xxxxxxxxxxxxxx>; linux-ide@xxxxxxxxxxxxxxx >> Subject: [PATCH] libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M >> and BDR-205 >> >> From: Niklas Cassel <niklas.cassel@xxxxxxx> >> >> Commit 1527f69204fe ("ata: ahci: Add Green Sardine vendor ID as >> board_ahci_mobile") added an explicit entry for AMD Green Sardine >> AHCI controller using the board_ahci_mobile configuration (this >> configuration has later been renamed to board_ahci_low_power). >> >> The board_ahci_low_power configuration enables support for low power >> modes. >> >> This explicit entry takes precedence over the generic AHCI controller >> entry, which does not enable support for low power modes. >> >> Therefore, when commit 1527f69204fe ("ata: ahci: Add Green Sardine >> vendor ID as board_ahci_mobile") was backported to stable kernels, >> it make some Pioneer optical drives, which was working perfectly fine >> before the commit was backported, stop working. >> >> The real problem is that the Pioneer optical drives do not handle low >> power modes correctly. If these optical drives would have been tested >> on another AHCI controller using the board_ahci_low_power configuration, >> this issue would have been detected earlier. >> >> Unfortunately, the board_ahci_low_power configuration is only used in >> less than 15% of the total AHCI controller entries, so many devices >> have never been tested with an AHCI controller with low power modes. >> >> Fixes: 1527f69204fe ("ata: ahci: Add Green Sardine vendor ID as >> board_ahci_mobile") >> Cc: stable@xxxxxxxxxxxxxxx >> Reported-by: Jaap Berkhout <j.j.berkhout@xxxxxxxxxxxxxx> >> Signed-off-by: Niklas Cassel <niklas.cassel@xxxxxxx> > > Thanks! > > Reviewed-by: Mario Limonciello <mario.limonciello@xxxxxxx> > > Since Damien was still intending to modify the default policy so that LPM > applies everywhere I feel like more of this is going to show up. Should we > consider to maybe keep all CD/DVD/BD devices excluded from LPM? I am moving carefully on that one for fear of (old) devices breaking randomly... So not needed yet. But yeah, I definitely want to cleanup the lpm code. > >> --- >> drivers/ata/libata-core.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c >> index 826d41f341e4..c9a9aa607b62 100644 >> --- a/drivers/ata/libata-core.c >> +++ b/drivers/ata/libata-core.c >> @@ -3988,6 +3988,10 @@ static const struct ata_blacklist_entry >> ata_device_blacklist [] = { >> { "PIONEER DVD-RW DVR-212D", NULL, >> ATA_HORKAGE_NOSETXFER }, >> { "PIONEER DVD-RW DVR-216D", NULL, >> ATA_HORKAGE_NOSETXFER }, >> >> + /* These specific Pioneer models have LPM issues */ >> + { "PIONEER BD-RW BDR-207M", NULL, >> ATA_HORKAGE_NOLPM }, >> + { "PIONEER BD-RW BDR-205", NULL, ATA_HORKAGE_NOLPM }, >> + >> /* Crucial BX100 SSD 500GB has broken LPM support */ >> { "CT500BX100SSD1", NULL, ATA_HORKAGE_NOLPM }, >> >> -- >> 2.37.3 -- Damien Le Moal Western Digital Research