libata: ata_timing_compute() fixup
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Thu, 13 Oct 2011 13:17:32 +0000 (15:17 +0200)
committerJeff Garzik <jgarzik@redhat.com>
Fri, 14 Oct 2011 17:21:54 +0000 (13:21 -0400)
XFER_SW_DMA_0 mode should be excluded from the extended cycle timing
computations.

Acked-by: Alan Cox <alan@linux.intel.com>
Noticed-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/libata-core.c

index 4a3a5ae7bb45edaf0e115add80b0d76dfda6ff2e..32fc41c1da305ad42829b88f8c5a47eb6e1e8c1c 100644 (file)
@@ -2938,7 +2938,7 @@ int ata_timing_compute(struct ata_device *adev, unsigned short speed,
        if (id[ATA_ID_FIELD_VALID] & 2) {       /* EIDE drive */
                memset(&p, 0, sizeof(p));
 
-               if (speed >= XFER_PIO_0 && speed <= XFER_SW_DMA_0) {
+               if (speed >= XFER_PIO_0 && speed < XFER_SW_DMA_0) {
                        if (speed <= XFER_PIO_2)
                                p.cycle = p.cyc8b = id[ATA_ID_EIDE_PIO];
                        else if ((speed <= XFER_PIO_4) ||