aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2009-12-03 14:32:08 -0500
committerJeff Garzik <jgarzik@redhat.com>2009-12-03 15:50:51 -0500
commitdd221f9ce97c33e560a63999c74c17d13ef780b4 (patch)
treee0a0c2cb99b53047cac73bec9f1c0af879da04a1 /drivers
parentf79ff92649efd5ef17f5267fe6f599c64e74e050 (diff)
pata_efar: fix wrong MWDMA timings being programmed
Do not clear MWDMA timings for device on the other port when programming slave device. This change should be safe as this is how we have been doing things in IDE slc90e66 host driver for years. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/ata/pata_efar.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/ata/pata_efar.c b/drivers/ata/pata_efar.c
index 540c36426303..f37d98700dfd 100644
--- a/drivers/ata/pata_efar.c
+++ b/drivers/ata/pata_efar.c
@@ -201,7 +201,7 @@ static void efar_set_dmamode (struct ata_port *ap, struct ata_device *adev)
201 master_data &= 0xFF4F; /* Mask out IORDY|TIME1|DMAONLY */ 201 master_data &= 0xFF4F; /* Mask out IORDY|TIME1|DMAONLY */
202 master_data |= control << 4; 202 master_data |= control << 4;
203 pci_read_config_byte(dev, 0x44, &slave_data); 203 pci_read_config_byte(dev, 0x44, &slave_data);
204 slave_data &= (0x0F + 0xE1 * ap->port_no); 204 slave_data &= ap->port_no ? 0x0F : 0xF0;
205 /* Load the matching timing */ 205 /* Load the matching timing */
206 slave_data |= ((timings[pio][0] << 2) | timings[pio][1]) << (ap->port_no ? 4 : 0); 206 slave_data |= ((timings[pio][0] << 2) | timings[pio][1]) << (ap->port_no ? 4 : 0);
207 pci_write_config_byte(dev, 0x44, slave_data); 207 pci_write_config_byte(dev, 0x44, slave_data);