From 358f9a77a668660729e705fde9c3cf69f013aa98 Mon Sep 17 00:00:00 2001 From: Tejun Heo Date: Tue, 25 Mar 2008 12:22:47 +0900 Subject: 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 --- drivers/ata/pata_legacy.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'drivers/ata/pata_legacy.c') diff --git a/drivers/ata/pata_legacy.c b/drivers/ata/pata_legacy.c index 50fe08ebe23..6ac02f7d528 100644 --- a/drivers/ata/pata_legacy.c +++ b/drivers/ata/pata_legacy.c @@ -252,7 +252,7 @@ static struct ata_port_operations simple_port_ops = { .data_xfer = ata_data_xfer_noirq, .irq_handler = ata_interrupt, - .irq_clear = ata_bmdma_irq_clear, + .irq_clear = ata_noop_irq_clear, .irq_on = ata_irq_on, .port_start = ata_sff_port_start, @@ -279,7 +279,7 @@ static struct ata_port_operations legacy_port_ops = { .data_xfer = ata_data_xfer_noirq, .irq_handler = ata_interrupt, - .irq_clear = ata_bmdma_irq_clear, + .irq_clear = ata_noop_irq_clear, .irq_on = ata_irq_on, .port_start = ata_sff_port_start, @@ -393,7 +393,7 @@ static struct ata_port_operations pdc20230_port_ops = { .data_xfer = pdc_data_xfer_vlb, .irq_handler = ata_interrupt, - .irq_clear = ata_bmdma_irq_clear, + .irq_clear = ata_noop_irq_clear, .irq_on = ata_irq_on, .port_start = ata_sff_port_start, @@ -447,7 +447,7 @@ static struct ata_port_operations ht6560a_port_ops = { .data_xfer = ata_data_xfer, /* Check vlb/noirq */ .irq_handler = ata_interrupt, - .irq_clear = ata_bmdma_irq_clear, + .irq_clear = ata_noop_irq_clear, .irq_on = ata_irq_on, .port_start = ata_sff_port_start, @@ -512,7 +512,7 @@ static struct ata_port_operations ht6560b_port_ops = { .data_xfer = ata_data_xfer, /* FIXME: Check 32bit and noirq */ .irq_handler = ata_interrupt, - .irq_clear = ata_bmdma_irq_clear, + .irq_clear = ata_noop_irq_clear, .irq_on = ata_irq_on, .port_start = ata_sff_port_start, @@ -633,7 +633,7 @@ static struct ata_port_operations opti82c611a_port_ops = { .data_xfer = ata_data_xfer, .irq_handler = ata_interrupt, - .irq_clear = ata_bmdma_irq_clear, + .irq_clear = ata_noop_irq_clear, .irq_on = ata_irq_on, .port_start = ata_sff_port_start, @@ -765,7 +765,7 @@ static struct ata_port_operations opti82c46x_port_ops = { .data_xfer = ata_data_xfer, .irq_handler = ata_interrupt, - .irq_clear = ata_bmdma_irq_clear, + .irq_clear = ata_noop_irq_clear, .irq_on = ata_irq_on, .port_start = ata_sff_port_start, @@ -950,7 +950,7 @@ static struct ata_port_operations qdi6500_port_ops = { .data_xfer = vlb32_data_xfer, .irq_handler = ata_interrupt, - .irq_clear = ata_bmdma_irq_clear, + .irq_clear = ata_noop_irq_clear, .irq_on = ata_irq_on, .port_start = ata_sff_port_start, @@ -977,7 +977,7 @@ static struct ata_port_operations qdi6580_port_ops = { .data_xfer = vlb32_data_xfer, .irq_handler = ata_interrupt, - .irq_clear = ata_bmdma_irq_clear, + .irq_clear = ata_noop_irq_clear, .irq_on = ata_irq_on, .port_start = ata_sff_port_start, @@ -1004,7 +1004,7 @@ static struct ata_port_operations qdi6580dp_port_ops = { .data_xfer = vlb32_data_xfer, .irq_handler = ata_interrupt, - .irq_clear = ata_bmdma_irq_clear, + .irq_clear = ata_noop_irq_clear, .irq_on = ata_irq_on, .port_start = ata_sff_port_start, @@ -1095,7 +1095,7 @@ static struct ata_port_operations winbond_port_ops = { .data_xfer = vlb32_data_xfer, - .irq_clear = ata_bmdma_irq_clear, + .irq_clear = ata_noop_irq_clear, .irq_on = ata_irq_on, .port_start = ata_sff_port_start, -- cgit v1.2.3