libata: relocate forcing PIO0 on reset
commitcdeab1140799f09c5f728a5ff85e0bdfa5679cd2
authorTejun Heo <htejun@gmail.com>
Mon, 29 Oct 2007 07:41:09 +0000 (29 16:41 +0900)
committerJeff Garzik <jeff@garzik.org>
Mon, 29 Oct 2007 10:21:33 +0000 (29 06:21 -0400)
tree51e70854ce9a41e3d7e0363fe5748635671b6a6f
parenta9efacbad1a735ec410acb26c9de72be8efb33d5
libata: relocate forcing PIO0 on reset

Forcing PIO0 on reset was done inside ata_bus_softreset(), which is a
bit out of place as it should be applied to all resets - hard, soft
and implementation which don't use ata_bus_softreset().  Relocate it
such that...

* For new EH, it's done in ata_eh_reset() before calling prereset.

* For old EH, it's done before calling ap->ops->phy_reset() in
  ata_bus_probe().

This makes PIO0 forced after all resets.  Another difference is that
reset itself is done after PIO0 is forced.

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