diff options
Diffstat (limited to 'drivers/ide/ide-io.c')
| -rw-r--r-- | drivers/ide/ide-io.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c index 272cc38f6dbe..1059f809b809 100644 --- a/drivers/ide/ide-io.c +++ b/drivers/ide/ide-io.c | |||
| @@ -683,8 +683,9 @@ void ide_timer_expiry (unsigned long data) | |||
| 683 | } else if (drive_is_ready(drive)) { | 683 | } else if (drive_is_ready(drive)) { |
| 684 | if (drive->waiting_for_dma) | 684 | if (drive->waiting_for_dma) |
| 685 | hwif->dma_ops->dma_lost_irq(drive); | 685 | hwif->dma_ops->dma_lost_irq(drive); |
| 686 | if (hwif->ack_intr) | 686 | if (hwif->port_ops && hwif->port_ops->clear_irq) |
| 687 | hwif->ack_intr(hwif); | 687 | hwif->port_ops->clear_irq(drive); |
| 688 | |||
| 688 | printk(KERN_WARNING "%s: lost interrupt\n", | 689 | printk(KERN_WARNING "%s: lost interrupt\n", |
| 689 | drive->name); | 690 | drive->name); |
| 690 | startstop = handler(drive); | 691 | startstop = handler(drive); |
| @@ -803,7 +804,8 @@ irqreturn_t ide_intr (int irq, void *dev_id) | |||
| 803 | 804 | ||
| 804 | spin_lock_irqsave(&hwif->lock, flags); | 805 | spin_lock_irqsave(&hwif->lock, flags); |
| 805 | 806 | ||
| 806 | if (hwif->ack_intr && hwif->ack_intr(hwif) == 0) | 807 | if (hwif->port_ops && hwif->port_ops->test_irq && |
| 808 | hwif->port_ops->test_irq(hwif) == 0) | ||
| 807 | goto out; | 809 | goto out; |
| 808 | 810 | ||
| 809 | handler = hwif->handler; | 811 | handler = hwif->handler; |
