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_icside.c b/drivers/ata/pata_icside.c
index f97068b..e1230ca 100644
--- a/drivers/ata/pata_icside.c
+++ b/drivers/ata/pata_icside.c
@@ -322,11 +322,6 @@
.bios_param = ata_std_bios_param,
};
-/* wish this was exported from libata-core */
-static void ata_dummy_noret(struct ata_port *port)
-{
-}
-
static void pata_icside_postreset(struct ata_link *link, unsigned int *classes)
{
struct ata_port *ap = link->ap;
@@ -380,7 +375,7 @@
.error_handler = pata_icside_error_handler,
.post_internal_cmd = pata_icside_bmdma_stop,
- .irq_clear = ata_dummy_noret,
+ .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on,
.bmdma_stop = pata_icside_bmdma_stop,