linux/drivers/ata
Tejun Heo 1529c69adc ata_generic: implement ATA_GEN_* flags and force enable DMA on MBP 7,1
IDE mode of MCP89 on MBP 7,1 doesn't set DMA enable bits in the BMDMA
status register.  Make the following changes to work around the problem.

* Instead of using hard coded 1 in id->driver_data as class code
  match, use ATA_GEN_CLASS_MATCH and carry the matched id in
  host->private_data.

* Instead of matching PCI_VENDOR_ID_CENATEK, use ATA_GEN_FORCE_DMA
  flag in id instead.

* Add ATA_GEN_FORCE_DMA to the id entry of MBP 7,1.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Peer Chen <pchen@nvidia.com>
Cc: stable@kernel.org
Reported-by: Anders Østhus <grapz666@gmail.com>
Reported-by: Andreas Graf <andreas_graf@csgraf.de>
Reported-by: Benoit Gschwind <gschwind@gnu-log.net>
Reported-by: Damien Cassou <damien.cassou@gmail.com>
Reported-by: tixetsal@juno.com
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2010-07-01 15:34:48 -04:00
..
ahci_platform.c ahci_platform: properly set up EM messaging 2010-05-14 17:35:51 -04:00
ahci.c ahci,ata_generic: let ata_generic handle new MBP w/ MCP89 2010-07-01 15:34:46 -04:00
ahci.h ahci: add "em_buffer" attribute for AHCI hosts 2010-05-14 17:35:51 -04:00
ata_generic.c ata_generic: implement ATA_GEN_* flags and force enable DMA on MBP 7,1 2010-07-01 15:34:48 -04:00
ata_piix.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
Kconfig libata-sff: trivial corrections to Kconfig help text 2010-06-02 13:50:00 -04:00
libahci.c libahci: Fix bug in storing EM messages 2010-07-01 15:34:15 -04:00
libata-acpi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
libata-core.c libata: implement on-demand HPA unlocking 2010-06-02 13:50:10 -04:00
libata-eh.c libata-sff: separate out BMDMA EH 2010-05-19 13:36:46 -04:00
libata-pmp.c [libata] Disable R_OK (Early ACK) on SII 3726 PMP 2010-05-14 17:08:02 -04:00
libata-scsi.c libata: implement on-demand HPA unlocking 2010-06-02 13:50:10 -04:00
libata-sff.c libata-sff: make BMDMA optional 2010-05-25 19:41:12 -04:00
libata.h libata-sff: separate out BMDMA EH 2010-05-19 13:36:46 -04:00
Makefile libata-sff: make BMDMA optional 2010-05-25 19:41:12 -04:00
pata_acpi.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_ali.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_amd.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_artop.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_at32.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pata_at91.c libata-sff: clean up BMDMA initialization 2010-05-19 13:32:19 -04:00
pata_atiixp.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_atp867x.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
pata_bf54x.c libata-sff: ata_sff_irq_clear() is BMDMA specific 2010-05-25 19:40:19 -04:00
pata_cmd64x.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_cmd640.c libata-sff: clean up BMDMA initialization 2010-05-19 13:32:19 -04:00
pata_cs5520.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
pata_cs5530.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_cs5535.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_cs5536.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_cypress.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_efar.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_hpt3x2n.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_hpt3x3.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
pata_hpt37x.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_hpt366.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_icside.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
pata_isapnp.c [libata] Improve timeout handling 2009-03-24 22:52:39 -04:00
pata_it821x.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_it8213.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_ixp4xx_cf.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
pata_jmicron.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_legacy.c pata_legacy: add pointers to QDI65x0 documentation 2009-12-03 16:06:47 -05:00
pata_macio.c powerpc/macio: Fix probing of macio devices by using the right of match table 2010-06-02 17:50:38 +10:00
pata_marvell.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_mpc52xx.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
pata_mpiix.c [libata] convert drivers to use ata.h mode mask defines 2009-03-24 22:13:27 -04:00
pata_netcell.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_ninja32.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
pata_ns87410.c libata: Pass host flags into the pci helper 2010-03-01 14:58:46 -05:00
pata_ns87415.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_octeon_cf.c libata-sff: kill dummy BMDMA ops from sata_qstor and pata_octeon_cf 2010-05-25 19:40:45 -04:00
pata_of_platform.c of: Remove duplicate fields from of_platform_driver 2010-05-22 00:10:40 -06:00
pata_oldpiix.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_opti.c libata: Pass host flags into the pci helper 2010-03-01 14:58:46 -05:00
pata_optidma.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_palmld.c [ARM] 5522/1: PalmLD: IDE support 2009-05-31 14:50:40 +01:00
pata_pcmcia.c Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev 2010-05-20 09:27:37 -07:00
pata_pdc202xx_old.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_pdc2027x.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
pata_piccolo.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_platform.c libata-sff: clean up BMDMA initialization 2010-05-19 13:32:19 -04:00
pata_qdi.c [libata] convert drivers to use ata.h mode mask defines 2009-03-24 22:13:27 -04:00
pata_radisys.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_rb532_cf.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pata_rdc.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_rz1000.c libata: Pass host flags into the pci helper 2010-03-01 14:58:46 -05:00
pata_sc1200.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_scc.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
pata_sch.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_serverworks.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_sil680.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_sis.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_sl82c105.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_triflex.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_via.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
pata_winbond.c [libata] convert drivers to use ata.h mode mask defines 2009-03-24 22:13:27 -04:00
pdc_adma.c libata-sff: ata_sff_[dumb_]qc_prep are BMDMA specific 2010-05-19 13:36:50 -04:00
sata_fsl.c of: Remove duplicate fields from of_platform_driver 2010-05-22 00:10:40 -06:00
sata_inic162x.c libata-sff: clean up BMDMA initialization 2010-05-19 13:32:19 -04:00
sata_mv.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
sata_nv.c sata_nv: don't diddle with nIEN on mcp55 2010-06-02 13:49:57 -04:00
sata_promise.c libata-sff: prd is BMDMA specific 2010-05-19 13:38:54 -04:00
sata_promise.h libata annotations and fixes 2008-01-23 05:24:15 -05:00
sata_qstor.c libata-sff: kill dummy BMDMA ops from sata_qstor and pata_octeon_cf 2010-05-25 19:40:45 -04:00
sata_sil24.c sata_sil24: Use memory barriers before issuing commands 2010-06-10 16:06:48 -04:00
sata_sil.c libata-sff: ata_sff_irq_clear() is BMDMA specific 2010-05-25 19:40:19 -04:00
sata_sis.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
sata_svw.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
sata_sx4.c libata-sff: separate out BMDMA EH 2010-05-19 13:36:46 -04:00
sata_uli.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
sata_via.c sata_via: explain the magic fix 2010-06-07 16:03:08 -04:00
sata_vsc.c libata-sff: separate out BMDMA irq handler 2010-05-25 19:40:24 -04:00
sis.h libata: PATA-mode fixes for sis_sata 2007-07-02 10:17:42 -04:00