libata: implement fast speed down for unverified data transfer mode
authorTejun Heo <htejun@gmail.com>
Tue, 27 Nov 2007 10:28:59 +0000 (19:28 +0900)
committerJeff Garzik <jeff@garzik.org>
Wed, 23 Jan 2008 10:24:11 +0000 (05:24 -0500)
commit76326ac1ac1f524014ef36986fed97796b28ec6b
tree56c662db2f65303e256fedac9a26362b921d759c
parent00115e0f5bc3bfdf3f3855ad89c8895f10458f92
libata: implement fast speed down for unverified data transfer mode

It's very likely that the configured data transfer mode is the wrong
one if device fails data transfers right after initial data transfer
mode configuration (including NCQ on/off and xfermode).  libata EH
needs to speed down fast before upper layers give up on probing.

This patch implement fast speed down rules to handle such cases
better.  Error occured while data transfer hasn't been verified
trigger fast back-to-back speed down actions until data transfer
works.

This change will make cable mis-detection and other initial
configuration problems corrected before partition scanning code gives
up.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/ata/libata-eh.c