diff --git a/include/linux/libata.h b/include/linux/libata.h index abd2deb..7a4cf9e 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h @@ -1166,6 +1166,14 @@ static inline u8 ata_irq_on(struct ata_port *ap) ap->ctl &= ~ATA_NIEN; ap->last_ctl = ap->ctl; + ap->ops->dev_select(ap, 1); + if (ap->flags & ATA_FLAG_MMIO) + writeb(ap->ctl, (void __iomem *) ioaddr->ctl_addr); + else + outb(ap->ctl, ioaddr->ctl_addr); + tmp = ata_wait_idle(ap); + + ap->ops->dev_select(ap, 0); if (ap->flags & ATA_FLAG_MMIO) writeb(ap->ctl, (void __iomem *) ioaddr->ctl_addr); else