aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/sl82c105.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/sl82c105.c')
-rw-r--r--drivers/ide/sl82c105.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/ide/sl82c105.c b/drivers/ide/sl82c105.c
index d25137b04e7a..b0a460625335 100644
--- a/drivers/ide/sl82c105.c
+++ b/drivers/ide/sl82c105.c
@@ -61,7 +61,8 @@ static unsigned int get_pio_timings(ide_drive_t *drive, u8 pio)
61 if (cmd_off == 0) 61 if (cmd_off == 0)
62 cmd_off = 1; 62 cmd_off = 1;
63 63
64 if (pio > 2 || ata_id_has_iordy(drive->id)) 64 if ((pio > 2 || ata_id_has_iordy(drive->id)) &&
65 !(pio > 4 && ata_id_is_cfa(drive->id)))
65 iordy = 0x40; 66 iordy = 0x40;
66 67
67 return (cmd_on - 1) << 8 | (cmd_off - 1) | iordy; 68 return (cmd_on - 1) << 8 | (cmd_off - 1) | iordy;
@@ -189,14 +190,13 @@ static void sl82c105_dma_start(ide_drive_t *drive)
189 ide_dma_start(drive); 190 ide_dma_start(drive);
190} 191}
191 192
192static void sl82c105_dma_timeout(ide_drive_t *drive) 193static void sl82c105_dma_clear(ide_drive_t *drive)
193{ 194{
194 struct pci_dev *dev = to_pci_dev(drive->hwif->dev); 195 struct pci_dev *dev = to_pci_dev(drive->hwif->dev);
195 196
196 DBG(("sl82c105_dma_timeout(drive:%s)\n", drive->name)); 197 DBG(("sl82c105_dma_clear(drive:%s)\n", drive->name));
197 198
198 sl82c105_reset_host(dev); 199 sl82c105_reset_host(dev);
199 ide_dma_timeout(drive);
200} 200}
201 201
202static int sl82c105_dma_end(ide_drive_t *drive) 202static int sl82c105_dma_end(ide_drive_t *drive)
@@ -298,7 +298,7 @@ static const struct ide_dma_ops sl82c105_dma_ops = {
298 .dma_test_irq = ide_dma_test_irq, 298 .dma_test_irq = ide_dma_test_irq,
299 .dma_lost_irq = sl82c105_dma_lost_irq, 299 .dma_lost_irq = sl82c105_dma_lost_irq,
300 .dma_timer_expiry = ide_dma_sff_timer_expiry, 300 .dma_timer_expiry = ide_dma_sff_timer_expiry,
301 .dma_timeout = sl82c105_dma_timeout, 301 .dma_clear = sl82c105_dma_clear,
302 .dma_sff_read_status = ide_dma_sff_read_status, 302 .dma_sff_read_status = ide_dma_sff_read_status,
303}; 303};
304 304