diff --git a/drivers/scsi/sata_sil.c b/drivers/scsi/sata_sil.c index bc9f918..0f19645 100644 --- a/drivers/scsi/sata_sil.c +++ b/drivers/scsi/sata_sil.c @@ -474,6 +474,10 @@ static void sil_thaw(struct ata_port *ap ata_chk_status(ap); ata_bmdma_irq_clear(ap); + /* SATA_IRQ has to be cleared manually on some controllers */ + writel(SIL_DMA_SATA_IRQ, mmio_base + sil_port[ap->port_no].bmdma2); + writel(0, mmio_base + sil_port[ap->port_no].bmdma2); + /* turn on SATA IRQ */ writel(SIL_SIEN_N, mmio_base + sil_port[ap->port_no].sien);