linux/drivers/ata
Tejun Heo 0ee7195272 ahci: redo stopping DMA engines on empty ports
Commit 96d60303fd (ahci: Turn off DMA engines when there's no device)
implemented stopping DMA engines on empty ports but it used single
sampling of status registers to determine device presence which led to
disabling of DMA engines on occupied ports.  Do it after all EH
actions are complete using device presence state determined by EH.
This avoids spurious disabling of DMA engines and simplifies the code.

Signed-off-by: Tejun Heo <tj@kernel.org>
Tested-by: Marc Dionne <marc.c.dionne@gmail.com>
Cc: Matthew Garrett <mjg@redhat.com>
Cc: Robert Hancock <hancockrwd@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2010-06-07 16:03:15 -04:00
..
Kconfig libata-sff: trivial corrections to Kconfig help text 2010-06-02 13:50:00 -04:00
Makefile libata-sff: make BMDMA optional 2010-05-25 19:41:12 -04:00
ahci.c ahci: EM message type auto detect 2010-05-14 17:35:51 -04:00
ahci.h ahci: add "em_buffer" attribute for AHCI hosts 2010-05-14 17:35:51 -04:00
ahci_platform.c ahci_platform: properly set up EM messaging 2010-05-14 17:35:51 -04:00
ata_generic.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
ata_piix.c libata-sff: separate out BMDMA init 2010-05-25 19:40:30 -04:00
libahci.c ahci: redo stopping DMA engines on empty ports 2010-06-07 16:03: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
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_sil.c libata-sff: ata_sff_irq_clear() is BMDMA specific 2010-05-25 19:40:19 -04:00
sata_sil24.c sata_sil24: fix kernel panic on ARM caused by unaligned access in sata_sil24 2010-06-07 16:03:13 -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