Re: [PATCH] libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M and BDR-205

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux