kernel-ark/drivers/ata
Robert Hancock 53014e2526 sata_nv: fix ADMA freeze/thaw/irq_clear issues
This patch fixes some problems with ADMA-capable controllers with
regard to freeze, thaw and irq_clear libata callbacks. Freeze and
thaw didn't switch the ADMA-specific interrupts on or off, and more
critically the irq_clear function didn't respect the restriction that
the notifier clear registers for both ports have to be written at
the same time even when only one port is being cleared. This could
result in timeouts on one port when error handling (i.e. as a result
of hotplug) occurred on the other port.

As well, this fixes some issues in the interrupt handler: we shouldn't
check any ADMA status if the port has ADMA switched off because of
an ATAPI device, and it also checks to see if any ADMA interrupt has
been raised even when we are in port-register mode.

Signed-off-by: Robert Hancock <hancockr@shaw.ca>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-09 20:15:46 -04:00
..
ahci.c libata: improve 0xff status handling 2007-05-01 07:49:54 -04:00
ata_generic.c pata: cable methods 2007-04-28 14:16:01 -04:00
ata_piix.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
Kconfig Fix trivial typos in Kconfig* files 2007-05-09 07:12:20 +02:00
libata-acpi.c libata-acpi: fix _GTF command protocol for ATAPI devices 2007-05-09 20:15:46 -04:00
libata-core.c unify flush_work/flush_work_keventd and rename it to cancel_work_sync 2007-05-09 12:30:53 -07:00
libata-eh.c libata: reimplement reset sequencing 2007-05-01 07:49:54 -04:00
libata-scsi.c libata: separate out ata_host_alloc() and ata_host_register() 2007-04-28 14:16:03 -04:00
libata-sff.c libata: honour host controllers that want just one host 2007-04-30 17:43:48 -07:00
libata.h libata: kill probe_ent and related helpers 2007-04-28 14:16:06 -04:00
Makefile Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2007-05-06 13:20:10 -07:00
pata_ali.c pata_ali: remove all the crap again and switch to cable_detect method 2007-04-28 14:16:00 -04:00
pata_amd.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_artop.c [libata reset-seq] build and merge fixes 2007-05-01 07:49:54 -04:00
pata_atiixp.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_cmd64x.c [libata] More PATA driver ->cable_detect support 2007-04-28 14:15:57 -04:00
pata_cmd640.c drivers/ata/pata_cmd640.c: fix build with CONFIG_PM=n 2007-04-28 15:16:40 -04:00
pata_cs5520.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_cs5530.c [libata] More PATA driver ->cable_detect support 2007-04-28 14:15:57 -04:00
pata_cs5535.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_cypress.c pata: cable methods 2007-04-28 14:16:01 -04:00
pata_efar.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_hpt3x2n.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_hpt3x3.c [libata] More PATA driver ->cable_detect support 2007-04-28 14:15:57 -04:00
pata_hpt37x.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_hpt366.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_icside.c [ARM] Add support for ICSIDE interface on RiscPC 2007-05-03 14:16:56 +01:00
pata_isapnp.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_it821x.c [libata] Update several PATA drivers for new ->cable_detect hook 2007-04-28 14:15:56 -04:00
pata_it8213.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_ixp4xx_cf.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_jmicron.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_legacy.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_marvell.c [libata reset-seq] build and merge fixes 2007-05-01 07:49:54 -04:00
pata_mpc52xx.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_mpiix.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_netcell.c pata_netcell: re-remove all the crud 2007-04-28 14:16:00 -04:00
pata_ns87410.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_oldpiix.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_opti.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_optidma.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_pcmcia.c pata_pcmcia.c: add card ident for jvc cdrom 2007-05-09 20:15:46 -04:00
pata_pdc202xx_old.c [libata] Update several PATA drivers for new ->cable_detect hook 2007-04-28 14:15:56 -04:00
pata_pdc2027x.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_platform.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_qdi.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_radisys.c pata_radisys: support cable_detect 2007-04-28 14:15:57 -04:00
pata_rz1000.c pata_rz1000: support cable_detect 2007-04-28 14:15:57 -04:00
pata_sc1200.c pata_sc1200: restore cable type 2007-04-28 14:15:57 -04:00
pata_scc.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_serverworks.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_sil680.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_sis.c [libata reset-seq] build and merge fixes 2007-05-01 07:49:54 -04:00
pata_sl82c105.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_triflex.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_via.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_winbond.c SPIN_LOCK_UNLOCKED cleanup in drivers/ata/pata_winbond.c 2007-04-28 15:16:40 -04:00
pdc_adma.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_inic162x.c libata: improve 0xff status handling 2007-05-01 07:49:54 -04:00
sata_mv.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_nv.c sata_nv: fix ADMA freeze/thaw/irq_clear issues 2007-05-09 20:15:46 -04:00
sata_promise.c sata_promise: SATAII-150/300 TX4 port numbering fix 2007-05-09 20:15:46 -04:00
sata_promise.h
sata_qstor.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_sil24.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
sata_sil.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_sis.c libata: convert ata_pci_init_native_mode() users to new init model 2007-04-28 14:16:03 -04:00
sata_svw.c [POWERPC] Rename get_property to of_get_property: drivers 2007-05-02 20:04:32 +10:00
sata_sx4.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_uli.c libata: convert ata_pci_init_native_mode() users to new init model 2007-04-28 14:16:03 -04:00
sata_via.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
sata_vsc.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sis.h SiS warning fixes 2007-02-21 04:58:17 -05:00