[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? > --- > 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