[PATCH] libata: PIO 0
authorAlan Cox <alan@lxorguk.ukuu.org.uk>
Mon, 22 May 2006 15:52:06 +0000 (16:52 +0100)
committerJeff Garzik <jeff@garzik.org>
Wed, 24 May 2006 05:53:00 +0000 (01:53 -0400)
Ensure the pio_mode is always setup. Don't do any setup on the controller b
just ensure the mode reporting is valid to avoid tons of special cases
in PATA driver code when mode switching on the fly.

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/scsi/libata-core.c

index e891b83be10fd36e865549dd952f4f77d496e449..45b6b29bc10f4aef78badbb4193fe1abb4dc0379 100644 (file)
@@ -1498,6 +1498,12 @@ static int ata_bus_probe(struct ata_port *ap)
                if (classes[i] == ATA_DEV_UNKNOWN)
                        classes[i] = ATA_DEV_NONE;
 
+       /* after the reset the device state is PIO 0 and the controller
+          state is undefined. Record the mode */
+
+       for (i = 0; i < ATA_MAX_DEVICES; i++)
+               ap->device[i].pio_mode = XFER_PIO_0;
+
        /* read IDENTIFY page and configure devices */
        for (i = 0; i < ATA_MAX_DEVICES; i++) {
                dev = &ap->device[i];