aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2009-12-03 14:32:11 -0500
committerJeff Garzik <jgarzik@redhat.com>2009-12-03 16:06:14 -0500
commit6809e7301fba4f9fa446ead5167faed115690fc4 (patch)
tree473bbf46a8c92a31f44162fa7cf66f64545809b7 /drivers/ata
parent43c7d17ee7e03433c57dc4ce457d34110108455a (diff)
pata_legacy: fix access to control register for QDI6580
We need to mask out the port offset from the port number cached in ld_qdi->timing. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata')
-rw-r--r--drivers/ata/pata_legacy.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/ata/pata_legacy.c b/drivers/ata/pata_legacy.c
index da2546b1dda2..5afe3567ebcc 100644
--- a/drivers/ata/pata_legacy.c
+++ b/drivers/ata/pata_legacy.c
@@ -672,7 +672,7 @@ static void qdi6580dp_set_piomode(struct ata_port *ap, struct ata_device *adev)
672 outb(timing, ld_qdi->timing + 2 * ap->port_no); 672 outb(timing, ld_qdi->timing + 2 * ap->port_no);
673 /* Clear the FIFO */ 673 /* Clear the FIFO */
674 if (adev->class != ATA_DEV_ATA) 674 if (adev->class != ATA_DEV_ATA)
675 outb(0x5F, ld_qdi->timing + 3); 675 outb(0x5F, (ld_qdi->timing & 0xFFF0) + 3);
676} 676}
677 677
678/** 678/**
@@ -707,7 +707,7 @@ static void qdi6580_set_piomode(struct ata_port *ap, struct ata_device *adev)
707 outb(timing, ld_qdi->timing + 2 * adev->devno); 707 outb(timing, ld_qdi->timing + 2 * adev->devno);
708 /* Clear the FIFO */ 708 /* Clear the FIFO */
709 if (adev->class != ATA_DEV_ATA) 709 if (adev->class != ATA_DEV_ATA)
710 outb(0x5F, ld_qdi->timing + 3); 710 outb(0x5F, (ld_qdi->timing & 0xFFF0) + 3);
711} 711}
712 712
713/** 713/**