android_kernel_motorola_sm6375/drivers/ata
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tasos Sahanidis 67d66a5e45 ata: pata_via: Force PIO for ATAPI devices on VT6415/VT6330
commit d29fc02caad7f94b62d56ee1b01c954f9c961ba7 upstream.

The controller has a hardware bug that can hard hang the system when
doing ATAPI DMAs without any trace of what happened. Depending on the
device attached, it can also prevent the system from booting.

In this case, the system hangs when reading the ATIP from optical media
with cdrecord -vvv -atip on an _NEC DVD_RW ND-4571A 1-01 and an
Optiarc DVD RW AD-7200A 1.06 attached to an ASRock 990FX Extreme 4,
running at UDMA/33.

The issue can be reproduced by running the same command with a cygwin
build of cdrecord on WinXP, although it requires more attempts to cause
it. The hang in that case is also resolved by forcing PIO. It doesn't
appear that VIA has produced any drivers for that OS, thus no known
workaround exists.

HDDs attached to the controller do not suffer from any DMA issues.

Cc: stable@vger.kernel.org
Link: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/916677
Signed-off-by: Tasos Sahanidis <tasos@tasossah.com>
Link: https://lore.kernel.org/r/20250519085508.1398701-1-tasos@tasossah.com
Signed-off-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-06-27 11:02:51 +01:00
..
acard-ahci.c ata: make qc_prep return ata_completion_errors 2020-10-01 13:18:26 +02:00
ahci.c ahci: add PCI ID for Marvell 88SE9215 SATA Controller 2025-05-02 07:39:10 +02:00
ahci.h ahci: add 43-bit DMA address quirk for ASMedia ASM1061 controllers 2024-03-01 13:13:33 +01: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 ata: ahci-imx: Fix MODULE_ALIAS 2022-10-29 10:20:34 +02:00
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
ahci_st.c
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: libahci: clear pending interrupt status 2023-10-10 21:46:36 +02:00
libahci_platform.c ata: libahci_platform: Sanity check the DT child nodes number 2022-10-26 13:22:56 +02:00
libata-acpi.c
libata-core.c ata: libata: Fix memory leak for error path in ata_host_alloc() 2024-09-12 11:03:50 +02:00
libata-eh.c ata: libata-eh: Do not use ATAPI DMA for a device limited to PIO mode 2025-05-02 07:39:10 +02:00
libata-pmp.c
libata-scsi.c ata: libata-scsi: ignore reserved bits for REPORT SUPPORTED OPERATION CODES 2023-10-10 21:46:41 +02: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-core: Do not register PM operations for SAS ports 2023-10-10 21:46:42 +02:00
libata-transport.h
libata-zpodd.c
libata.h ata: libata-core: Do not register PM operations for SAS ports 2023-10-10 21:46:42 +02:00
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
pata_bk3710.c
pata_buddha.c
pata_cmd64x.c
pata_cmd640.c
pata_cs5520.c
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 ata: pata_ftide010: Add missing MODULE_DESCRIPTION 2023-09-23 11:00:00 +02:00
pata_gayle.c
pata_hpt3x2n.c
pata_hpt3x3.c
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 ata: pata_isapnp: Add missing error check for devm_ioport_map() 2023-12-08 08:44:23 +01:00
pata_it821x.c
pata_it8213.c
pata_ixp4xx_cf.c pata_ipx4xx_cf: Fix unsigned comparison with less than zero 2023-01-18 11:40:59 +01:00
pata_jmicron.c
pata_legacy.c ata: pata_legacy: make legacy_exit() work again 2024-06-16 13:28:49 +02:00
pata_macio.c ata: pata_macio: Use WARN instead of BUG 2024-09-12 11:03:55 +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
pata_ns87410.c
pata_ns87415.c ata: pata_ns87415: mark ns87560_tf_read static 2023-08-11 11:53:49 +02:00
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
pata_oldpiix.c
pata_opti.c
pata_optidma.c
pata_palmld.c
pata_pcmcia.c
pata_pdc202xx_old.c
pata_pdc2027x.c
pata_piccolo.c
pata_platform.c
pata_pxa.c ata: pata_pxa: Fix potential NULL pointer dereference in pxa_ata_probe() 2025-05-02 07:39:08 +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
pata_sc1200.c
pata_sch.c
pata_serverworks.c
pata_sil680.c
pata_sis.c
pata_sl82c105.c
pata_triflex.c
pata_via.c ata: pata_via: Force PIO for ATAPI devices on VT6415/VT6330 2025-06-27 11:02:51 +01:00
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 ata: sata_gemini: Check clk_enable() result 2024-05-17 11:43:51 +02:00
sata_gemini.h
sata_highbank.c ata: sata_highbank: fix OF node reference leak in highbank_initialize_phys() 2024-12-19 18:05:02 +01: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 PCI device ID table declaration compilation warning 2024-04-13 12:51:36 +02: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: sata_sil: Rename sil_blacklist to sil_quirks 2024-11-08 16:20:38 +01: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
sata_sx4.c ata: sata_sx4: Add error handling in pdc20621_i2c_read() 2025-05-02 07:39:08 +02:00
sata_uli.c
sata_via.c
sata_vsc.c
sis.h