1
linux/drivers/ata
Prarit Bhargava d70e551c8e [libata] Add " 2GB ATA Flash Disk"/"ADMA428M" to DMA blacklist
A user has several systems with a couple of models of flash disks with IDE
connectors.  These disks work fine in 2.6.18-ish kernels but corrupt data on
new kernels.

The difference appears to be with the default I/O method used by the IDE
controller driver between the kernels.  In the older kernels, the
configuration is very conservative and the driver stays in PIO mode.  With
new kernels, the ata driver (pata_serverworks) attempts to use UDMA/66
which the drive claims to support.  This mode, however, does not appear to
work in DMA mode.  The drive does work correctly and no corruption is
seen if the kernel parameter "libata.force=5:pio0,6:pio0" is used to force
the driver to use PIO instead of DMA mode.

Blacklist these drives.  Unfortunately the model name of the drive is very
generic, " 2GB ATA Flash Disk", but the revision is specific, "ADMA428M".

Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2012-05-22 16:02:14 -04:00
..
acard-ahci.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
ahci_platform.c ata: ahci_platform: Add synopsys ahci controller in DT's compatible list 2012-05-03 14:08:53 -04:00
ahci.c ahci: Detect Marvell 88SE9172 SATA controller 2012-05-03 14:07:40 -04:00
ahci.h ahci: move AHCI_HFLAGS() macro to ahci.h 2012-03-13 16:35:47 -04:00
ata_generic.c ata_generic: Skip is_intel_ider() check when ata_generic=1 is set 2012-05-22 15:54:13 -04:00
ata_piix.c ata_piix: defer disks to the Hyper-V drivers by default 2012-05-07 15:32:58 -04:00
Kconfig pata_of_platform: remove direct dependency on OF_IRQ 2012-01-08 19:14:58 -05:00
libahci.c ahci: add AHCI_HFLAG_DELAY_ENGINE host flag 2012-03-13 16:35:37 -04:00
libata-acpi.c Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2011-08-02 21:17:02 -10:00
libata-core.c [libata] Add " 2GB ATA Flash Disk"/"ADMA428M" to DMA blacklist 2012-05-22 16:02:14 -04:00
libata-eh.c libata-eh don't waste time retrying media errors (v3) 2012-05-07 15:40:34 -04:00
libata-pmp.c [libata] Issue SRST to Sil3726 PMP 2011-11-09 01:38:00 -05:00
libata-scsi.c [SCSI] libsas, libata: fix start of life for a sas ata_port 2012-04-23 12:11:47 +01:00
libata-sff.c ata: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:16 +08:00
libata-transport.c libata: forbid port runtime pm by default, fixing regression 2012-04-18 14:33:25 -04:00
libata-transport.h [libata] Add ATA transport class 2010-10-21 20:21:03 -04:00
libata.h libata: make ata_print_id atomic 2012-04-12 15:57:51 -04:00
Makefile libata: remove no longer needed pata_qdi driver 2011-10-14 13:25:24 -04:00
pata_acpi.c ata: remove unnecessary code 2011-07-23 18:07:27 -04:00
pata_ali.c pata_ali: fix "Satelite" typo 2011-10-14 13:10:42 -04:00
pata_amd.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
pata_arasan_cf.c ata/pata_arasan_cf: Move arasan_cf_pm_ops out of #ifdef, #endif macros 2012-05-03 14:08:03 -04:00
pata_artop.c pata_artop: add Power Management support 2011-10-14 13:32:54 -04:00
pata_at32.c libata: remove ATA_FLAG_MMIO 2011-03-02 02:36:46 -05:00
pata_at91.c pata/at91: use newly introduced SMC accessors 2012-02-13 18:31:37 +01:00
pata_atiixp.c pata_atiixp: add proper ->prereset method 2011-10-14 13:16:49 -04:00
pata_atp867x.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
pata_bf54x.c [libata] pata_bf54x: Support sg list in bmdma transfer. 2012-01-17 20:49:28 -05:00
pata_cmd64x.c pata_cmd64x: implement sff_irq_check() method 2012-03-13 16:43:11 -04:00
pata_cmd640.c pata_cmd640: implement sff_irq_check() method 2010-10-21 20:21:05 -04:00
pata_cs5520.c ata: Convert dev_printk(KERN_<LEVEL> to dev_<level>( 2011-07-23 17:57:36 -04:00
pata_cs5530.c
pata_cs5535.c pata_cs5535: no need to program PIO0 timings during device init 2011-10-14 13:08:05 -04:00
pata_cs5536.c pata_cs5536: forward port changes from cs5536 2012-01-08 19:14:58 -05:00
pata_cypress.c
pata_efar.c pata_efar: fix register naming used in efar_set_piomode() 2011-10-14 13:38:40 -04:00
pata_hpt3x2n.c ata: pata: Convert pr_*(DRV_NAME ...) to pr_fmt/pr_<level> 2011-03-14 02:56:31 -04:00
pata_hpt3x3.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
pata_hpt37x.c ata: pata: Convert pr_*(DRV_NAME ...) to pr_fmt/pr_<level> 2011-03-14 02:56:31 -04:00
pata_hpt366.c pata_hpt366: add hpt36x_find_mode() helper 2011-10-14 13:07:18 -04:00
pata_icside.c ata: Convert ata_<foo>_printk(KERN_<LEVEL> to ata_<foo>_<level> 2011-07-23 17:57:36 -04:00
pata_imx.c SATA/PATA: convert drivers/ata/* to use module_platform_driver() 2012-01-08 19:14:58 -05:00
pata_isapnp.c
pata_it821x.c pata_it821x: Fix RAID type display, by adding missing comma 2011-07-23 18:04:25 -04:00
pata_it8213.c pata_it8213: fix register naming used in it8213_set_piomode() 2011-10-14 13:25:17 -04:00
pata_ixp4xx_cf.c SATA/PATA: convert drivers/ata/* to use module_platform_driver() 2012-01-08 19:14:58 -05:00
pata_jmicron.c
pata_legacy.c pata_legacy: correctly mask recovery field for HT6560B 2012-03-13 12:43:13 -04:00
pata_macio.c ata: Convert ata_<foo>_printk(KERN_<LEVEL> to ata_<foo>_<level> 2011-07-23 17:57:36 -04:00
pata_marvell.c pata_marvell: Add support for 88SE91A0, 88SE91A4 2011-06-24 02:07:35 -04:00
pata_mpc52xx.c drivers/ata/pata_mpc52xx.c: clean up error handling code 2012-03-13 16:41:08 -04:00
pata_mpiix.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
pata_netcell.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
pata_ninja32.c [libata] trivial: trim trailing whitespace for drivers/ata/*.[ch] 2011-03-02 02:36:45 -05:00
pata_ns87410.c ata: Convert dev_printk(KERN_<LEVEL> to dev_<level>( 2011-07-23 17:57:36 -04:00
pata_ns87415.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
pata_octeon_cf.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
pata_of_platform.c pata_of_platform: remove direct dependency on OF_IRQ 2012-01-08 19:14:58 -05:00
pata_oldpiix.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
pata_opti.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
pata_optidma.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
pata_palmld.c SATA/PATA: convert drivers/ata/* to use module_platform_driver() 2012-01-08 19:14:58 -05:00
pata_pcmcia.c ata: Convert ata_<foo>_printk(KERN_<LEVEL> to ata_<foo>_<level> 2011-07-23 17:57:36 -04:00
pata_pdc202xx_old.c pata_pdc202xx_old: implement sff_irq_check() method 2010-10-21 20:21:06 -04:00
pata_pdc2027x.c pata_pdc2027x: add Power Management support 2011-10-14 13:32:52 -04:00
pata_piccolo.c
pata_platform.c SATA/PATA: convert drivers/ata/* to use module_platform_driver() 2012-01-08 19:14:58 -05:00
pata_pxa.c SATA/PATA: convert drivers/ata/* to use module_platform_driver() 2012-01-08 19:14:58 -05:00
pata_radisys.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
pata_rb532_cf.c SATA/PATA: convert drivers/ata/* to use module_platform_driver() 2012-01-08 19:14:58 -05:00
pata_rdc.c pata_rdc: add Power Management support 2011-10-14 13:38:36 -04:00
pata_rz1000.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
pata_samsung_cf.c ata: Convert ata_<foo>_printk(KERN_<LEVEL> to ata_<foo>_<level> 2011-07-23 17:57:36 -04:00
pata_sc1200.c pata_sc1200: do not use c99 style comments 2011-10-14 13:01:42 -04:00
pata_scc.c pata_scc: add proper cable detection method 2011-10-14 13:19:51 -04:00
pata_sch.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
pata_serverworks.c pata_serverworks: add serverworks_fixup() 2011-10-14 13:16:35 -04:00
pata_sil680.c pata_sil680: minor CodingStyle fixups 2011-10-14 12:46:45 -04:00
pata_sis.c pata_sis: code style cleanups for consistency 2011-10-08 00:07:16 -04:00
pata_sl82c105.c pata_sl82c105: add Power Management support 2011-10-14 13:32:53 -04:00
pata_triflex.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
pata_via.c pata_via: add via_fixup() 2011-10-14 13:22:54 -04:00
pdc_adma.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
sata_dwc_460ex.c SATA/PATA: convert drivers/ata/* to use module_platform_driver() 2012-01-08 19:14:58 -05:00
sata_fsl.c sata_fsl: add support for interrupt coalsecing feature 2012-03-13 12:43:13 -04:00
sata_inic162x.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
sata_mv.c sata_mv: silence an uninitialized variable warning 2012-04-12 15:57:22 -04:00
sata_nv.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
sata_promise.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
sata_promise.h
sata_qstor.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
sata_sil24.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
sata_sil.c [libata] sata_sil: fix used-uninit warning 2011-08-18 23:52:36 -04:00
sata_sis.c sata_sis.c: trivial spelling fix 2011-11-09 01:36:49 -05:00
sata_svw.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
sata_sx4.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
sata_uli.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
sata_via.c ata: sata_via: Use dev_dbg 2011-07-23 17:57:36 -04:00
sata_vsc.c ata: Add and use ata_print_version_once 2011-07-23 17:57:36 -04:00
sis.h