ahci: add workaround for on-board 5723s on some gigabyte boards
authorTejun Heo <tj@kernel.org>
Tue, 4 Aug 2009 05:30:08 +0000 (14:30 +0900)
committerJeff Garzik <jgarzik@redhat.com>
Wed, 12 Aug 2009 10:21:32 +0000 (06:21 -0400)
commit5594639aab8b5614cb27a3e5b2b627505cbcd137
treeca524a98b750df6571b9aba32c7c5697890b727f
parentb6931c1fbaf7fda9ea7f120228a96600d7090049
ahci: add workaround for on-board 5723s on some gigabyte boards

Some gigabytes have on-board SIMG5723s connected to JMB ahcis.  These
are used to implement hardware raid.  Unfortunately some firmware
revisions on these 5723s don't bring the link down when all the
downstream ports are unoccupied while not responding to reset protocol
which makes libata think that there's device attached to the port but
is not responding and retry.  This results in painfully wrong boot
detection time for these ports when they're empty.

This patch quirks those boards such that ahci gives up after the
initial timeout.  Combined with parallel probing, this gives quick
enough probing and also is safe because SIMG5723 will respond to the
first try if any of the downstream ports is occupied.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Marc Bowes <marcbowes@gmail.com>
Reported-by: Nicolas Mailhot <Nicolas.Mailhot@LaPoste.net>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/ahci.c