android_kernel_motorola_sm6375/drivers/ata
Repository files (latest commit first)
Filename Latest commit message Latest commit date
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