From: Alan Cox Date: Mon, 22 May 2006 15:52:06 +0000 (+0100) Subject: [PATCH] libata: PIO 0 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=b6079ca409bf88c248992e96510dd6f610f7ed89;p=openwrt%2Fstaging%2Fblogic.git [PATCH] libata: PIO 0 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 Signed-off-by: Jeff Garzik --- diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c index e891b83be10f..45b6b29bc10f 100644 --- a/drivers/scsi/libata-core.c +++ b/drivers/scsi/libata-core.c @@ -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];