libata: implement and use ata_noop_irq_clear()
->irq_clear() is used to clear IRQ bit of a SFF controller and isn't
useful for drivers which don't use libata SFF HSM implementation.
However, it's a required callback and many drivers implement their own
noop version as placeholder. This patch implements ata_noop_irq_clear
and use it to replace those custom placeholders.
Also, SFF drivers which don't support BMDMA don't need to use
ata_bmdma_irq_clear(). It becomes noop if BMDMA address isn't
initialized. Convert them to use ata_noop_irq_clear().
Signed-off-by: Tejun Heo <htejun@gmail.com>
diff --git a/drivers/ata/pata_at32.c b/drivers/ata/pata_at32.c
index db057b1..27c959f 100644
--- a/drivers/ata/pata_at32.c
+++ b/drivers/ata/pata_at32.c
@@ -166,11 +166,6 @@
}
}
-static void pata_at32_irq_clear(struct ata_port *ap)
-{
- /* No DMA controller yet */
-}
-
static struct scsi_host_template at32_sht = {
.module = THIS_MODULE,
.name = DRV_NAME,
@@ -208,7 +203,7 @@
.data_xfer = ata_data_xfer,
- .irq_clear = pata_at32_irq_clear,
+ .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on,
.port_start = ata_sff_port_start,