On 26-09-2022 14:59, J.J. Berkhout wrote: > > > On 21-09-2022 20:32, Niklas Cassel wrote: >> On Wed, Sep 21, 2022 at 02:38:51PM +0200, J.J. Berkhout wrote: >>> On 21-09-2022 13:58, Niklas Cassel wrote: >>>> Another way do disable lpm is to do: >>>> $ sudo sh -c "echo max_performance > /sys/class/scsi_host/host13/link_power_management_policy" >>> >>> Yes, this worked and did the trick! Reading without any errors. I did >>> not yet try to write, but will do so today. >>> When booting with libata.force=nolpm the link_power_management_policy >>> was still med_power_with_dipm and I got the dmesg: >>> >>> [ 0.291452] ata: failed to parse force parameter "nolpm" (unknown value) >>> >>> so the ineffectiveness of this boot parameter seems to be explained. >>> Might there be some other syntax for this parameter? >> >> Apparently this was introduced quite recently, in >> commit 2c33bbdac28c ("ata: libata-core: Allow forcing most horkage flags") >> which was first included in kernel v5.19. >> >>> >>> Nevertheless, my problem now has a work-around and I am very happy. >>> Thanks, Niklas. >> >> Great news! >> >> Then I believe that >> + { "PIONEER BD-RW BDR-207M", NULL, ATA_HORKAGE_NOLPM }, >> should be the proper quirk for your device. >> >> If you could test it when you have time (again, no rush), >> then we could send out a proper fix for this. >> >> >> Kind regards, >> Niklas > > OK, I got around to testing the patch. > I used kernel 5.19.11 (from https://cdn.kernel.org/pub). > After solving the problem with errors with the compilation (I removed > the NVIDIA driver and switched to the nouveau driver) and space problems > on my /boot partition (solved by using sudo make INSTALL_MOD_STRIP=1 > modules_install) I got the following results: > > Try 1: > patching libata-core.c with the lines > /* PIONEER BD-RW BDR-207M and PIONEER BD-RW BDR-205 have broken LPM > support */ > { "PIONEER BD-RW DVR-207M", NULL, ATA_HORKAGE_NOLPM }, > { "PIONEER BD-RW DVR-205", NULL, ATA_HORKAGE_NOLPM }, > > resulted in > link_power_management_policy still "med_power_with_dipm" > problem with pioneer DOES occur > > Try 2: > patching libata-core.c with the lines > /* PIONEER BD-RW BDR-207M and PIONEER BD-RW BDR-205 have broken LPM > support */ > { "PIONEER BD-RW DVR-207M", NULL, ATA_HORKAGE_NOSETXFER }, > { "PIONEER BD-RW DVR-205", NULL, ATA_HORKAGE_NOSETXFER }, > > resulted in > link_power_management_policy still "med_power_with_dipm" > problem with pioneer DOES occur > > Try 3: > patching libata-core.c with the lines > /* PIONEER BD-RW BDR-207M and PIONEER BD-RW BDR-205 have broken LPM > support */ > { "PIONEER BD-RW DVR-207M", NULL, ATA_HORKAGE_NOSETXFER | > ATA_HORKAGE_NOLPM }, > { "PIONEER BD-RW DVR-205", NULL, ATA_HORKAGE_NOSETXFER | > ATA_HORKAGE_NOLPM }, > > resulted in > link_power_management_policy still "med_power_with_dipm" > problem with pioneer DOES occur, additional error in log: > device offline error, dev sr0, sector 1365828 op 0x0:(READ) flags 0x0 > phys_seg 1 prio class 0 > (not sure if this is significant)' > > Try 4: > unpatched libata-core.c > using boot kernel parameter "libata.force=1:nolpm" > > resulted in > link_power_management_policy now "max_performance" > problem with pioneer DOES NOT occur > so libata.force=nolpm kernel parameter works, which might interest > Damien ;-) > > Niklas, if you want to try other patches for this problem, I wouldbe > happy to be of assistance. > > With kind regards, > > Jaap Berkhout Update: I am sorry to have to report I made a mistake. Instead of "PIONEER BD-RW BDR-207M" I used "BD-RW DVR-207M", which is obviously wrong. I just now corrected this am am happy to report that with the patch: /* PIONEER BD-RW BDR-207M and PIONEER BD-RW BDR-205 have broken LPM support */ { "PIONEER BD-RW BDR-207M", NULL, ATA_HORKAGE_NOLPM }, { "PIONEER BD-RW BDR-205", NULL, ATA_HORKAGE_NOLPM }, the problem with the optical drive is solved. Please consider this mistake as a senior moment. With kind regards, Jaap Berkhout.
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature