libata: don't set IORDY for reset
authorTejun Heo <tj@kernel.org>
Thu, 11 Jun 2009 02:04:45 +0000 (11:04 +0900)
committerJeff Garzik <jgarzik@redhat.com>
Tue, 23 Jun 2009 05:54:30 +0000 (01:54 -0400)
commit0d9e6659a1bde3733cfd0072adbb3514b579e383
tree9af1e5a8712fe02216ea52ef740f86ead5085acd
parentdc77ad4c8727d3a1c23eadcb287501dab480d634
libata: don't set IORDY for reset

Before issuing reset, libata configures xfermode to PIO0 which makes
some drivers turn on IORDY which may cause the controller to lock up
if the port is not occupied.  IORDY isn't necessary at this point
anyway.  Make ata_pio_need_iordy() return zero if it's being called
for reset.

This fixes bko#11703.  Reported and tracked down by Daniel Gnoutcheff
and Constantine Gavrilov.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Daniel Gnoutcheff <gnoutchd@union.edu>
Cc: Constantine Gavrilov <constantine.gavrilov@gmail.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/libata-core.c