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/sata_sil24.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/sata_sil24.c')
-rw-r--r-- | drivers/ata/sata_sil24.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c index ba0c00e8ee7f..b85464d51f68 100644 --- a/drivers/ata/sata_sil24.c +++ b/drivers/ata/sata_sil24.c | |||
@@ -348,7 +348,6 @@ static void sil24_tf_read(struct ata_port *ap, struct ata_taskfile *tf); | |||
348 | static int sil24_qc_defer(struct ata_queued_cmd *qc); | 348 | static int sil24_qc_defer(struct ata_queued_cmd *qc); |
349 | static void sil24_qc_prep(struct ata_queued_cmd *qc); | 349 | static void sil24_qc_prep(struct ata_queued_cmd *qc); |
350 | static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc); | 350 | static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc); |
351 | static void sil24_irq_clear(struct ata_port *ap); | ||
352 | static void sil24_pmp_attach(struct ata_port *ap); | 351 | static void sil24_pmp_attach(struct ata_port *ap); |
353 | static void sil24_pmp_detach(struct ata_port *ap); | 352 | static void sil24_pmp_detach(struct ata_port *ap); |
354 | static void sil24_freeze(struct ata_port *ap); | 353 | static void sil24_freeze(struct ata_port *ap); |
@@ -416,7 +415,7 @@ static const struct ata_port_operations sil24_ops = { | |||
416 | .qc_prep = sil24_qc_prep, | 415 | .qc_prep = sil24_qc_prep, |
417 | .qc_issue = sil24_qc_issue, | 416 | .qc_issue = sil24_qc_issue, |
418 | 417 | ||
419 | .irq_clear = sil24_irq_clear, | 418 | .irq_clear = ata_noop_irq_clear, |
420 | 419 | ||
421 | .scr_read = sil24_scr_read, | 420 | .scr_read = sil24_scr_read, |
422 | .scr_write = sil24_scr_write, | 421 | .scr_write = sil24_scr_write, |
@@ -921,11 +920,6 @@ static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc) | |||
921 | return 0; | 920 | return 0; |
922 | } | 921 | } |
923 | 922 | ||
924 | static void sil24_irq_clear(struct ata_port *ap) | ||
925 | { | ||
926 | /* unused */ | ||
927 | } | ||
928 | |||
929 | static void sil24_pmp_attach(struct ata_port *ap) | 923 | static void sil24_pmp_attach(struct ata_port *ap) |
930 | { | 924 | { |
931 | sil24_config_pmp(ap, 1); | 925 | sil24_config_pmp(ap, 1); |