linux/drivers/ata
Tejun Heo c2c7a89c5e libata: improve probe failure handling
When link is flaky at high speed, it isn't uncommon for a device to
repeatedly fail probing sequence early after successfully negotiating
high link speed.  This often leads to consecutive hotplug events
without successful probing.

This patch improves libata EH such that it remembers probing trials
and if there have been more than two unsuccessful trials in the past
60 seconds, slows down link speed to 1.5Gbps.

As link speed negotiation is the duty of the PHY layer proper, the
goal of this fallback mechanism is to provide the last resort when
everything else fails, which unfortunately happens not too
infrequently, so no fancy 6->3->1.5 speeding down or highest
successful transmission speed seen kind of logics (yet).

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2009-02-02 23:03:34 -05:00
..
ahci.c ahci: add a module parameter to ignore the SSS flags for async scanning 2009-02-02 22:41:39 -05:00
ata_generic.c libata: beef up iterators 2008-12-28 22:43:20 -05:00
ata_piix.c SATA PIIX: Blacklist system that spins off disks during ACPI power off 2009-01-27 02:15:53 -05:00
Kconfig sata_mv: no longer experimental (v2) 2009-01-26 06:42:10 -05:00
libata-acpi.c Merge branch 'linus' into release 2009-01-09 03:39:43 -05:00
libata-core.c libata: add @spd_limit to sata_down_spd_limit() 2009-02-02 23:03:22 -05:00
libata-eh.c libata: improve probe failure handling 2009-02-02 23:03:34 -05:00
libata-pmp.c libata: add @spd_limit to sata_down_spd_limit() 2009-02-02 23:03:22 -05:00
libata-scsi.c libata: fix kernel-doc warnings 2009-02-02 22:41:45 -05:00
libata-sff.c libata: set NODEV_HINT for 0x7f status 2009-01-26 06:36:26 -05:00
libata.h libata: add @spd_limit to sata_down_spd_limit() 2009-02-02 23:03:22 -05:00
Makefile libata: New driver for OCTEON SOC Compact Flash interface (v7). 2009-01-16 10:23:39 -05:00
pata_acpi.c ACPI: remove private acpica headers from driver files 2008-12-31 01:15:22 -05:00
pata_ali.c drivers/ata/pata_ali.c: s/isa_bridge/ali_isa_bridge/ to fix alpha build 2009-01-16 10:23:43 -05:00
pata_amd.c libata: Add 32bit PIO support 2009-01-08 16:34:27 -05:00
pata_artop.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_at32.c
pata_atiixp.c pata_atiixp: update port enabledness test handling 2009-01-16 10:20:27 -05:00
pata_bf54x.c [libata] Update kernel-doc comments to match source code 2008-12-28 22:43:21 -05:00
pata_cmd64x.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_cmd640.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_cs5520.c
pata_cs5530.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_cs5535.c [libata] pata_cs553*.c: cleanup kernel-doc 2008-11-11 02:58:30 -05:00
pata_cs5536.c [libata] pata_cs553*.c: cleanup kernel-doc 2008-11-11 02:58:30 -05:00
pata_cypress.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_efar.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_hpt3x2n.c
pata_hpt3x3.c [libata] pata_hpt3x3: correct _freeze() function declaration 2009-01-08 16:28:21 -05:00
pata_hpt37x.c
pata_hpt366.c pata_hpt366: reimplement mode programming 2009-01-08 16:29:20 -05:00
pata_icside.c
pata_isapnp.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_it821x.c pata_it821x: Update RDC UDMA handling 2009-01-13 10:35:01 -05:00
pata_it8213.c
pata_ixp4xx_cf.c libata: beef up iterators 2008-12-28 22:43:20 -05:00
pata_jmicron.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_legacy.c [libata] Update kernel-doc comments to match source code 2008-12-28 22:43:21 -05:00
pata_marvell.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_mpc52xx.c powerpc/mpc5200: Add MDMA/UDMA support to MPC5200 ATA driver 2008-12-21 02:54:29 -07:00
pata_mpiix.c libata: Add 32bit PIO support 2009-01-08 16:34:27 -05:00
pata_netcell.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_ninja32.c pata_ninja32: update ID table 2008-12-09 00:44:19 -05:00
pata_ns87410.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_ns87415.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_octeon_cf.c libata: New driver for OCTEON SOC Compact Flash interface (v7). 2009-01-16 10:23:39 -05:00
pata_of_platform.c powerpc: Fix no interrupt handling in pata_of_platform 2008-10-10 15:55:17 +11:00
pata_oldpiix.c [libata] Update kernel-doc comments to match source code 2008-12-28 22:43:21 -05:00
pata_opti.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_optidma.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_pcmcia.c [libata] pata_pcmcia: another memory card support 2008-11-11 02:59:13 -05:00
pata_pdc202xx_old.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_pdc2027x.c [libata] Update kernel-doc comments to match source code 2008-12-28 22:43:21 -05:00
pata_platform.c pata_platform: __pata_platform_remove() shouldn't be in discard section 2009-01-08 16:10:29 -05:00
pata_qdi.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_radisys.c [libata] Update kernel-doc comments to match source code 2008-12-28 22:43:21 -05:00
pata_rb532_cf.c pata-rb532-cf: remove set_irq_type from finish_io 2009-01-27 02:13:03 -05:00
pata_rz1000.c libata: beef up iterators 2008-12-28 22:43:20 -05:00
pata_sc1200.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_scc.c [libata] Update kernel-doc comments to match source code 2008-12-28 22:43:21 -05:00
pata_sch.c [libata] pata_sch: notice attached slave devices 2008-11-11 02:58:59 -05:00
pata_serverworks.c [libata] Update kernel-doc comments to match source code 2008-12-28 22:43:21 -05:00
pata_sil680.c libata: Add 32bit PIO support 2009-01-08 16:34:27 -05:00
pata_sis.c [libata] Update kernel-doc comments to match source code 2008-12-28 22:43:21 -05:00
pata_sl82c105.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_triflex.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pata_via.c [libata] pata_via: support VX855, future chips whose IDE controller use 0x0571 2009-01-26 06:51:26 -05:00
pata_winbond.c ata: Switch all my stuff to a common address 2008-10-27 23:54:50 -04:00
pdc_adma.c
sata_fsl.c sata_fsl: Return non-zero on error in probe() 2009-01-16 10:23:58 -05:00
sata_inic162x.c libata: make SCR access ops per-link 2008-09-29 00:22:28 -04:00
sata_mv.c sata_mv: Fix chip type for Hightpoint RocketRaid 1740/1742 2009-02-02 22:41:29 -05:00
sata_nv.c sata_nv: ck804 has borked hardreset too 2009-02-02 23:02:38 -05:00
sata_promise.c sata_promise: add ATA engine reset to reset ops 2008-11-04 01:08:03 -05:00
sata_promise.h
sata_qstor.c libata: make SCR access ops per-link 2008-09-29 00:22:28 -04:00
sata_sil24.c sata_sil24: remove unused sil24_port_multiplier 2009-01-08 16:09:59 -05:00
sata_sil.c [libata] sata_sil: Fix compilation error with libata debugging enabled 2009-02-02 22:38:29 -05:00
sata_sis.c libata: make SCR access ops per-link 2008-09-29 00:22:28 -04:00
sata_svw.c libata: make SCR access ops per-link 2008-09-29 00:22:28 -04:00
sata_sx4.c
sata_uli.c libata: make SCR access ops per-link 2008-09-29 00:22:28 -04:00
sata_via.c sata_via: Add VT8261 support 2009-01-16 10:23:22 -05:00
sata_vsc.c libata: make SCR access ops per-link 2008-09-29 00:22:28 -04:00
sis.h