aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/pdc_adma.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2008-03-24 23:22:47 -0400
committerJeff Garzik <jgarzik@redhat.com>2008-04-17 15:44:16 -0400
commit358f9a77a668660729e705fde9c3cf69f013aa98 (patch)
treea249660fdd9f252925eff9eaac3ed7836c839f91 /drivers/ata/pdc_adma.c
parentc1bc899f5805771926c9198e2ab4d77122c356a1 (diff)
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>
Diffstat (limited to 'drivers/ata/pdc_adma.c')
-rw-r--r--drivers/ata/pdc_adma.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/ata/pdc_adma.c b/drivers/ata/pdc_adma.c
index 8e1b7e9c0ae4..bc2d12a2da30 100644
--- a/drivers/ata/pdc_adma.c
+++ b/drivers/ata/pdc_adma.c
@@ -138,7 +138,6 @@ static unsigned int adma_qc_issue(struct ata_queued_cmd *qc);
138static int adma_check_atapi_dma(struct ata_queued_cmd *qc); 138static int adma_check_atapi_dma(struct ata_queued_cmd *qc);
139static void adma_bmdma_stop(struct ata_queued_cmd *qc); 139static void adma_bmdma_stop(struct ata_queued_cmd *qc);
140static u8 adma_bmdma_status(struct ata_port *ap); 140static u8 adma_bmdma_status(struct ata_port *ap);
141static void adma_irq_clear(struct ata_port *ap);
142static void adma_freeze(struct ata_port *ap); 141static void adma_freeze(struct ata_port *ap);
143static void adma_thaw(struct ata_port *ap); 142static void adma_thaw(struct ata_port *ap);
144static void adma_error_handler(struct ata_port *ap); 143static void adma_error_handler(struct ata_port *ap);
@@ -174,7 +173,7 @@ static const struct ata_port_operations adma_ata_ops = {
174 .freeze = adma_freeze, 173 .freeze = adma_freeze,
175 .thaw = adma_thaw, 174 .thaw = adma_thaw,
176 .error_handler = adma_error_handler, 175 .error_handler = adma_error_handler,
177 .irq_clear = adma_irq_clear, 176 .irq_clear = ata_noop_irq_clear,
178 .irq_on = ata_irq_on, 177 .irq_on = ata_irq_on,
179 .port_start = adma_port_start, 178 .port_start = adma_port_start,
180 .port_stop = adma_port_stop, 179 .port_stop = adma_port_stop,
@@ -223,11 +222,6 @@ static u8 adma_bmdma_status(struct ata_port *ap)
223 return 0; 222 return 0;
224} 223}
225 224
226static void adma_irq_clear(struct ata_port *ap)
227{
228 /* nothing */
229}
230
231static void adma_reset_engine(struct ata_port *ap) 225static void adma_reset_engine(struct ata_port *ap)
232{ 226{
233 void __iomem *chan = ADMA_PORT_REGS(ap); 227 void __iomem *chan = ADMA_PORT_REGS(ap);