linux/drivers/ata
Tejun Heo 51b94d2a5a sata_promise: use TF interface for polling NODATA commands
sata_promise uses two different command modes - packet and TF.  Packet mode
is intelligent low-overhead mode while TF is the same old taskfile
interface.  As with other advanced interface (ahci/sil24),
ATA_TFLAG_POLLING has no effect in packet mode.  However, PIO commands are
issued using TF interface in polling mode, so pdc_interrupt() considers
interrupts spurious if ATA_TFLAG_POLLING is set.

This is broken for polling NODATA commands because command is issued using
packet mode but the interrupt handler ignores it due to ATA_TFLAG_POLLING.
Fix pdc_qc_issue_prot() such that ATA/ATAPI NODATA commands are issued
using TF interface if ATA_TFLAG_POLLING is set.

This patch fixes detection failure introduced by polling SETXFERMODE.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Acked-by: Mikael Pettersson <mikpe@it.uu.se>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-06-08 17:23:33 -07:00
..
ahci.c libata: bump versions 2007-05-21 20:26:38 -04:00
ata_generic.c libata: bump versions 2007-05-21 20:26:38 -04:00
ata_piix.c ata_piix: add short 40c quirk for Acer Aspire 2030, take #2 2007-05-24 20:34:48 -04:00
Kconfig [ATA]: Back out bogus (SPARC64 && !PCI) Kconfig depends. 2007-06-04 23:33:04 -07:00
libata-acpi.c libata-acpi: add ATA_FLAG_ACPI_SATA port flag 2007-05-16 01:18:31 -04:00
libata-core.c libata: always use polling SETXFER 2007-06-04 16:48:34 -04:00
libata-eh.c libata: Trim trailing whitespace 2007-05-21 20:14:23 -04:00
libata-scsi.c [libata] Fix decoding of 6-byte commands 2007-05-25 04:39:39 -04:00
libata-sff.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
libata.h libata: remove libata.spindown_compat 2007-05-17 20:57:38 -04:00
Makefile libata-acpi: s/CONFIG_SATA_ACPI/CONFIG_ATA_ACPI/ 2007-05-11 18:12:42 -04:00
pata_ali.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_amd.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_artop.c pata: Trivia 2007-05-25 17:29:59 -04:00
pata_atiixp.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_cmd64x.c libata: bump versions 2007-05-21 20:26:38 -04:00
pata_cmd640.c libata: Trim trailing whitespace 2007-05-21 20:14:23 -04:00
pata_cs5520.c libata: bump versions 2007-05-21 20:26:38 -04:00
pata_cs5530.c libata: bump versions 2007-05-21 20:26:38 -04:00
pata_cs5535.c libata: bump versions 2007-05-21 20:26:38 -04:00
pata_cypress.c libata: bump versions 2007-05-21 20:26:38 -04:00
pata_efar.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_hpt3x2n.c hpt3x2n: Correct revision boundary 2007-05-24 20:34:47 -04:00
pata_hpt3x3.c libata: bump versions 2007-05-21 20:26:38 -04:00
pata_hpt37x.c pata_hpt37x: Further improvements based on the IDE updates and vendor drivers 2007-05-25 17:29:59 -04:00
pata_hpt366.c pata_hpt366: Enable bits are unreliable so don't use them 2007-05-21 20:00:43 -04:00
pata_icside.c [ARM] pata_icside: fix build errors 2007-05-11 17:19:07 +01:00
pata_isapnp.c libata: bump versions 2007-05-21 20:26:38 -04:00
pata_it821x.c pata: Trivia 2007-05-25 17:29:59 -04:00
pata_it8213.c libata: bump versions 2007-05-21 20:26:38 -04:00
pata_ixp4xx_cf.c libata: bump versions 2007-05-21 20:26:38 -04:00
pata_jmicron.c libata: bump versions 2007-05-21 20:26:38 -04:00
pata_legacy.c libata: bump versions 2007-05-21 20:26:38 -04:00
pata_marvell.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_mpc52xx.c libata: reimplement suspend/resume support using sdev->manage_start_stop 2007-05-11 18:01:03 -04:00
pata_mpiix.c libata: reimplement suspend/resume support using sdev->manage_start_stop 2007-05-11 18:01:03 -04:00
pata_netcell.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_ns87410.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_oldpiix.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_opti.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_optidma.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_pcmcia.c pata_pcmcia: recognize 2GB CompactFlash from Transcend 2007-05-11 18:16:00 -04:00
pata_pdc202xx_old.c libata: clean up SFF init mess 2007-05-11 18:09:18 -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: bump versions 2007-05-21 20:26:38 -04:00
pata_qdi.c libata: bump versions 2007-05-21 20:26:38 -04:00
pata_radisys.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_rz1000.c libata: bump versions 2007-05-21 20:26:38 -04:00
pata_sc1200.c libata: bump versions 2007-05-21 20:26:38 -04:00
pata_scc.c Fix build failure for drivers/ata/pata_scc.c 2007-05-25 04:17:31 -04:00
pata_serverworks.c libata: bump versions 2007-05-21 20:26:38 -04:00
pata_sil680.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_sis.c pata_sis: Fix and clean up some timing setups 2007-05-24 20:34:48 -04:00
pata_sl82c105.c libata: bump versions 2007-05-21 20:26:38 -04:00
pata_triflex.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_via.c libata: always use polling SETXFER 2007-06-04 16:48:34 -04:00
pata_winbond.c libata: bump versions 2007-05-21 20:26:38 -04:00
pdc_adma.c libata: bump versions 2007-05-21 20:26:38 -04:00
sata_inic162x.c libata: bump versions 2007-05-21 20:26:38 -04:00
sata_mv.c [libata] sata_mv: add TODO list 2007-05-24 23:40:15 -04:00
sata_nv.c libata: bump versions 2007-05-21 20:26:38 -04:00
sata_promise.c sata_promise: use TF interface for polling NODATA commands 2007-06-08 17:23:33 -07:00
sata_promise.h Move libata to drivers/ata. 2006-08-10 07:31:37 -04:00
sata_qstor.c libata: bump versions 2007-05-21 20:26:38 -04:00
sata_sil24.c libata: bump versions 2007-05-21 20:26:38 -04:00
sata_sil.c libata: Trim trailing whitespace 2007-05-21 20:14:23 -04:00
sata_sis.c libata: sata_sis fixes 2007-05-25 04:18:42 -04:00
sata_svw.c libata: bump versions 2007-05-21 20:26:38 -04:00
sata_sx4.c libata: bump versions 2007-05-21 20:26:38 -04:00
sata_uli.c libata: bump versions 2007-05-21 20:26:38 -04:00
sata_via.c [libata] sata_via, pata_via: Add PCI IDs. 2007-05-25 05:02:06 -04:00
sata_vsc.c libata: bump versions 2007-05-21 20:26:38 -04:00
sis.h libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00