Message ID | 20220926183718.480950-1-Niklas.Cassel@wdc.com |
---|---|
State | New |
Headers | show |
Series | libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M and BDR-205 | expand |
[Public] > -----Original Message----- > From: Niklas Cassel <Niklas.Cassel@wdc.com> > Sent: Monday, September 26, 2022 13:38 > To: Damien Le Moal <damien.lemoal@opensource.wdc.com>; Limonciello, > Mario <Mario.Limonciello@amd.com> > Cc: Niklas Cassel <Niklas.Cassel@wdc.com>; stable@vger.kernel.org; Jaap > Berkhout <j.j.berkhout@staalenberk.nl>; linux-ide@vger.kernel.org > Subject: [PATCH] libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M > and BDR-205 > > From: Niklas Cassel <niklas.cassel@wdc.com> > > 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@vger.kernel.org > Reported-by: Jaap Berkhout <j.j.berkhout@staalenberk.nl> > Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com> Thanks! Reviewed-by: Mario Limonciello <mario.limonciello@amd.com> 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
On 9/27/22 03:56, Limonciello, Mario wrote: > [Public] > > > >> -----Original Message----- >> From: Niklas Cassel <Niklas.Cassel@wdc.com> >> Sent: Monday, September 26, 2022 13:38 >> To: Damien Le Moal <damien.lemoal@opensource.wdc.com>; Limonciello, >> Mario <Mario.Limonciello@amd.com> >> Cc: Niklas Cassel <Niklas.Cassel@wdc.com>; stable@vger.kernel.org; Jaap >> Berkhout <j.j.berkhout@staalenberk.nl>; linux-ide@vger.kernel.org >> Subject: [PATCH] libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M >> and BDR-205 >> >> From: Niklas Cassel <niklas.cassel@wdc.com> >> >> 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@vger.kernel.org >> Reported-by: Jaap Berkhout <j.j.berkhout@staalenberk.nl> >> Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com> > > Thanks! > > Reviewed-by: Mario Limonciello <mario.limonciello@amd.com> > > 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
On 9/27/22 03:38, Niklas Cassel wrote: > From: Niklas Cassel <niklas.cassel@wdc.com> > > 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@vger.kernel.org > Reported-by: Jaap Berkhout <j.j.berkhout@staalenberk.nl> > Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com> Applied to for-6.0-fixes. Thanks ! > --- > 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 }, >
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 },