Niklas Cassel
bb7c23e4e5
libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M and BDR-205
...
commit ea08aec7e77bfd6599489ec430f9f859ab84575a upstream.
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>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-10-05 10:37:42 +02:00
..
acard-ahci.c
ata: make qc_prep return ata_completion_errors
2020-10-01 13:18:26 +02:00
ahci.c
ata: ahci: Add Green Sardine vendor ID as board_ahci_mobile
2021-12-08 09:01:10 +01:00
ahci.h
ata: ahci: Disable SXS for Hisilicon Kunpeng920
2021-05-11 14:04:10 +02:00
ahci_brcm.c
ata: ahci_brcm: Add back regulators management
2021-03-04 10:26:23 +01:00
ahci_ceva.c
ahci_da850.c
ahci_dm816.c
ahci_imx.c
ahci_mtk.c
ahci_mvebu.c
ata: ahci: mvebu: Make SATA PHY optional for Armada 3720
2020-11-01 12:01:05 +01:00
ahci_octeon.c
ahci_platform.c
ahci_qoriq.c
ahci_seattle.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 235
2019-06-19 17:09:07 +02:00
ahci_st.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
ahci_sunxi.c
ata: ahci_sunxi: Disable DIPM
2021-07-19 08:53:15 +02:00
ahci_tegra.c
ahci_xgene.c
ata_generic.c
ata_piix.c
Kconfig
libahci.c
ata: ahci: Disable SXS for Hisilicon Kunpeng920
2021-05-11 14:04:10 +02:00
libahci_platform.c
ata: ahci_platform: fix null-ptr-deref in ahci_platform_enable_regulators()
2021-10-20 11:40:16 +02:00
libata-acpi.c
libata-core.c
libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M and BDR-205
2022-10-05 10:37:42 +02:00
libata-eh.c
ata: libata-eh: Add missing command name
2022-08-25 11:18:18 +02:00
libata-pmp.c
libata: Return correct status in sata_pmp_eh_recover_pm() when ATA_DFLAG_DETACH is set
2020-04-17 10:50:22 +02:00
libata-scsi.c
libata: if T_LENGTH is zero, dma direction should be DMA_NONE
2021-12-22 09:29:39 +01:00
libata-sff.c
libata: fix ata_pio_sector for CONFIG_HIGHMEM
2021-08-12 13:21:04 +02:00
libata-trace.c
libata-transport.c
ata: libata-transport: fix {dma|pio|xfer}_mode sysfs files
2022-06-14 18:12:02 +02:00
libata-transport.h
libata-zpodd.c
libata: zpodd: Fix small read overflow in zpodd_get_mech_type()
2019-07-29 16:00:14 -06:00
libata.h
Makefile
pata_acpi.c
pata_ali.c
pata_amd.c
pata_arasan_cf.c
pata_arasan_cf: fix IRQ check
2021-05-14 09:44:24 +02:00
pata_artop.c
pata_atiixp.c
pata_atp867x.c
libata: switch remaining drivers to use dma_set_mask_and_coherent
2019-08-26 13:58:59 -06:00
pata_bk3710.c
pata_buddha.c
ata/pata_buddha: Probe via modalias instead of initcall
2019-08-23 06:58:50 -06:00
pata_cmd64x.c
pata_cmd640.c
pata_cs5520.c
libata: switch remaining drivers to use dma_set_mask_and_coherent
2019-08-26 13:58:59 -06:00
pata_cs5530.c
pata_cs5535.c
pata_cs5536.c
pata_cypress.c
pata_efar.c
pata_ep93xx.c
pata_ep93xx: fix deferred probing
2021-07-14 16:53:21 +02:00
pata_falcon.c
pata_ftide010.c
pata_gayle.c
pata_hpt3x2n.c
pata_hpt3x3.c
libata: switch remaining drivers to use dma_set_mask_and_coherent
2019-08-26 13:58:59 -06:00
pata_hpt37x.c
ata: pata_hpt37x: fix PCI clock detection
2022-03-08 19:07:46 +01:00
pata_hpt366.c
pata_icside.c
pata_imx.c
pata_isapnp.c
pata_it821x.c
pata_it8213.c
pata_ixp4xx_cf.c
pata_ipx4xx_cf: fix IRQ check
2021-05-14 09:44:24 +02:00
pata_jmicron.c
pata_legacy.c
pata_legacy: fix a couple uninitialized variable bugs
2021-10-20 11:40:16 +02:00
pata_macio.c
ata: make qc_prep return ata_completion_errors
2020-10-01 13:18:26 +02:00
pata_marvell.c
ata: pata_marvell: Check the 'bmdma_addr' beforing reading
2022-04-27 13:50:48 +02:00
pata_mpc52xx.c
pata_mpiix.c
pata_netcell.c
pata_ninja32.c
libata: switch remaining drivers to use dma_set_mask_and_coherent
2019-08-26 13:58:59 -06:00
pata_ns87410.c
pata_ns87415.c
pata_octeon_cf.c
ata: pata_octeon_cf: Fix refcount leak in octeon_cf_probe
2022-06-14 18:11:57 +02:00
pata_of_platform.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
pata_oldpiix.c
pata_opti.c
pata_optidma.c
pata_palmld.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
pata_pcmcia.c
pata_pdc202xx_old.c
pata_pdc2027x.c
libata: switch remaining drivers to use dma_set_mask_and_coherent
2019-08-26 13:58:59 -06:00
pata_piccolo.c
pata_platform.c
pata_pxa.c
ata: make qc_prep return ata_completion_errors
2020-10-01 13:18:26 +02:00
pata_radisys.c
pata_rb532_cf.c
pata_rb532_cf: fix deferred probing
2021-07-14 16:53:20 +02:00
pata_rdc.c
pata_rz1000.c
pata_samsung_cf.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
pata_sc1200.c
pata_sch.c
pata_serverworks.c
pata_sil680.c
libata: switch remaining drivers to use dma_set_mask_and_coherent
2019-08-26 13:58:59 -06:00
pata_sis.c
pata_sl82c105.c
pata_triflex.c
pata_via.c
pdc_adma.c
ata: make qc_prep return ata_completion_errors
2020-10-01 13:18:26 +02:00
sata_dwc_460ex.c
ata: sata_dwc_460ex: Fix crash due to OOB write
2022-04-15 14:18:39 +02:00
sata_fsl.c
sata_fsl: fix warning in remove_proc_entry when rmmod sata_fsl
2021-12-08 09:01:11 +01:00
sata_gemini.c
sata_gemini.h
sata_highbank.c
sata_highbank: fix deferred probing
2021-07-14 16:53:20 +02:00
sata_inic162x.c
ata: make qc_prep return ata_completion_errors
2020-10-01 13:18:26 +02:00
sata_mv.c
ata: sata_mv: Fix the error handling of mv_chip_id()
2021-11-02 19:46:12 +01:00
sata_nv.c
ata: sata_nv: Fix retrieving of active qcs
2020-11-05 11:43:12 +01:00
sata_promise.c
ata: make qc_prep return ata_completion_errors
2020-10-01 13:18:26 +02:00
sata_promise.h
sata_qstor.c
ata: make qc_prep return ata_completion_errors
2020-10-01 13:18:26 +02:00
sata_rcar.c
ata: sata_rcar: Fix DMA boundary mask
2020-11-01 12:01:06 +01:00
sata_sil.c
ata: make qc_prep return ata_completion_errors
2020-10-01 13:18:26 +02:00
sata_sil24.c
ata: make qc_prep return ata_completion_errors
2020-10-01 13:18:26 +02:00
sata_sis.c
sata_svw.c
libata: switch remaining drivers to use dma_set_mask_and_coherent
2019-08-26 13:58:59 -06:00
sata_sx4.c
ata: make qc_prep return ata_completion_errors
2020-10-01 13:18:26 +02:00
sata_uli.c
sata_via.c
libata: switch remaining drivers to use dma_set_mask_and_coherent
2019-08-26 13:58:59 -06:00
sata_vsc.c
libata: switch remaining drivers to use dma_set_mask_and_coherent
2019-08-26 13:58:59 -06:00
sis.h