diff options
author | Tejun Heo <htejun@gmail.com> | 2008-03-24 23:22:47 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-04-17 15:44:16 -0400 |
commit | 358f9a77a668660729e705fde9c3cf69f013aa98 (patch) | |
tree | a249660fdd9f252925eff9eaac3ed7836c839f91 /drivers/ata/pdc_adma.c | |
parent | c1bc899f5805771926c9198e2ab4d77122c356a1 (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.c | 8 |
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); | |||
138 | static int adma_check_atapi_dma(struct ata_queued_cmd *qc); | 138 | static int adma_check_atapi_dma(struct ata_queued_cmd *qc); |
139 | static void adma_bmdma_stop(struct ata_queued_cmd *qc); | 139 | static void adma_bmdma_stop(struct ata_queued_cmd *qc); |
140 | static u8 adma_bmdma_status(struct ata_port *ap); | 140 | static u8 adma_bmdma_status(struct ata_port *ap); |
141 | static void adma_irq_clear(struct ata_port *ap); | ||
142 | static void adma_freeze(struct ata_port *ap); | 141 | static void adma_freeze(struct ata_port *ap); |
143 | static void adma_thaw(struct ata_port *ap); | 142 | static void adma_thaw(struct ata_port *ap); |
144 | static void adma_error_handler(struct ata_port *ap); | 143 | static 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 | ||
226 | static void adma_irq_clear(struct ata_port *ap) | ||
227 | { | ||
228 | /* nothing */ | ||
229 | } | ||
230 | |||
231 | static void adma_reset_engine(struct ata_port *ap) | 225 | static 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); |