1
linux/drivers/ata
Tejun Heo 464cf177df libata: always use polling SETXFER
Several people have reported LITE-ON LTR-48246S detection failed
because SETXFER fails.  It seems the device raises IRQ too early after
SETXFER.  This is controller independent.  The same problem has been
reported for different controllers.

So, now we have pata_via where the controller raises IRQ before it's
ready after SETXFER and a device which does similar thing.  This patch
makes libata always execute SETXFER via polling.  As this only happens
during EH, performance impact is nil.  Setting ATA_TFLAG_POLLING is
also moved from issue hot path to ata_dev_set_xfermode() - the only
place where SETXFER can be issued.

Note that ATA_TFLAG_POLLING applies only to drivers which implement
SFF TF interface and use libata HSM.  More advanced controllers ignore
the flag.  This doesn't matter for this fix as SFF TF controllers are
the problematic ones.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-06-04 16:48:34 -04: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]: Don't allow to enable this for SPARC64 without PCI. 2007-06-03 18:09:42 -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 [libata] sata_promise: fix flags typo 2007-05-24 23:35:59 -04:00
sata_promise.h
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