aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/pata_legacy.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/pata_legacy.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/pata_legacy.c')
-rw-r--r--drivers/ata/pata_legacy.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/ata/pata_legacy.c b/drivers/ata/pata_legacy.c
index 50fe08ebe23c..6ac02f7d5289 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 = {
252 .data_xfer = ata_data_xfer_noirq, 252 .data_xfer = ata_data_xfer_noirq,
253 253
254 .irq_handler = ata_interrupt, 254 .irq_handler = ata_interrupt,
255 .irq_clear = ata_bmdma_irq_clear, 255 .irq_clear = ata_noop_irq_clear,
256 .irq_on = ata_irq_on, 256 .irq_on = ata_irq_on,
257 257
258 .port_start = ata_sff_port_start, 258 .port_start = ata_sff_port_start,
@@ -279,7 +279,7 @@ static struct ata_port_operations legacy_port_ops = {
279 .data_xfer = ata_data_xfer_noirq, 279 .data_xfer = ata_data_xfer_noirq,
280 280
281 .irq_handler = ata_interrupt, 281 .irq_handler = ata_interrupt,
282 .irq_clear = ata_bmdma_irq_clear, 282 .irq_clear = ata_noop_irq_clear,
283 .irq_on = ata_irq_on, 283 .irq_on = ata_irq_on,
284 284
285 .port_start = ata_sff_port_start, 285 .port_start = ata_sff_port_start,
@@ -393,7 +393,7 @@ static struct ata_port_operations pdc20230_port_ops = {
393 .data_xfer = pdc_data_xfer_vlb, 393 .data_xfer = pdc_data_xfer_vlb,
394 394
395 .irq_handler = ata_interrupt, 395 .irq_handler = ata_interrupt,
396 .irq_clear = ata_bmdma_irq_clear, 396 .irq_clear = ata_noop_irq_clear,
397 .irq_on = ata_irq_on, 397 .irq_on = ata_irq_on,
398 398
399 .port_start = ata_sff_port_start, 399 .port_start = ata_sff_port_start,
@@ -447,7 +447,7 @@ static struct ata_port_operations ht6560a_port_ops = {
447 .data_xfer = ata_data_xfer, /* Check vlb/noirq */ 447 .data_xfer = ata_data_xfer, /* Check vlb/noirq */
448 448
449 .irq_handler = ata_interrupt, 449 .irq_handler = ata_interrupt,
450 .irq_clear = ata_bmdma_irq_clear, 450 .irq_clear = ata_noop_irq_clear,
451 .irq_on = ata_irq_on, 451 .irq_on = ata_irq_on,
452 452
453 .port_start = ata_sff_port_start, 453 .port_start = ata_sff_port_start,
@@ -512,7 +512,7 @@ static struct ata_port_operations ht6560b_port_ops = {
512 .data_xfer = ata_data_xfer, /* FIXME: Check 32bit and noirq */ 512 .data_xfer = ata_data_xfer, /* FIXME: Check 32bit and noirq */
513 513
514 .irq_handler = ata_interrupt, 514 .irq_handler = ata_interrupt,
515 .irq_clear = ata_bmdma_irq_clear, 515 .irq_clear = ata_noop_irq_clear,
516 .irq_on = ata_irq_on, 516 .irq_on = ata_irq_on,
517 517
518 .port_start = ata_sff_port_start, 518 .port_start = ata_sff_port_start,
@@ -633,7 +633,7 @@ static struct ata_port_operations opti82c611a_port_ops = {
633 .data_xfer = ata_data_xfer, 633 .data_xfer = ata_data_xfer,
634 634
635 .irq_handler = ata_interrupt, 635 .irq_handler = ata_interrupt,
636 .irq_clear = ata_bmdma_irq_clear, 636 .irq_clear = ata_noop_irq_clear,
637 .irq_on = ata_irq_on, 637 .irq_on = ata_irq_on,
638 638
639 .port_start = ata_sff_port_start, 639 .port_start = ata_sff_port_start,
@@ -765,7 +765,7 @@ static struct ata_port_operations opti82c46x_port_ops = {
765 .data_xfer = ata_data_xfer, 765 .data_xfer = ata_data_xfer,
766 766
767 .irq_handler = ata_interrupt, 767 .irq_handler = ata_interrupt,
768 .irq_clear = ata_bmdma_irq_clear, 768 .irq_clear = ata_noop_irq_clear,
769 .irq_on = ata_irq_on, 769 .irq_on = ata_irq_on,
770 770
771 .port_start = ata_sff_port_start, 771 .port_start = ata_sff_port_start,
@@ -950,7 +950,7 @@ static struct ata_port_operations qdi6500_port_ops = {
950 .data_xfer = vlb32_data_xfer, 950 .data_xfer = vlb32_data_xfer,
951 951
952 .irq_handler = ata_interrupt, 952 .irq_handler = ata_interrupt,
953 .irq_clear = ata_bmdma_irq_clear, 953 .irq_clear = ata_noop_irq_clear,
954 .irq_on = ata_irq_on, 954 .irq_on = ata_irq_on,
955 955
956 .port_start = ata_sff_port_start, 956 .port_start = ata_sff_port_start,
@@ -977,7 +977,7 @@ static struct ata_port_operations qdi6580_port_ops = {
977 .data_xfer = vlb32_data_xfer, 977 .data_xfer = vlb32_data_xfer,
978 978
979 .irq_handler = ata_interrupt, 979 .irq_handler = ata_interrupt,
980 .irq_clear = ata_bmdma_irq_clear, 980 .irq_clear = ata_noop_irq_clear,
981 .irq_on = ata_irq_on, 981 .irq_on = ata_irq_on,
982 982
983 .port_start = ata_sff_port_start, 983 .port_start = ata_sff_port_start,
@@ -1004,7 +1004,7 @@ static struct ata_port_operations qdi6580dp_port_ops = {
1004 .data_xfer = vlb32_data_xfer, 1004 .data_xfer = vlb32_data_xfer,
1005 1005
1006 .irq_handler = ata_interrupt, 1006 .irq_handler = ata_interrupt,
1007 .irq_clear = ata_bmdma_irq_clear, 1007 .irq_clear = ata_noop_irq_clear,
1008 .irq_on = ata_irq_on, 1008 .irq_on = ata_irq_on,
1009 1009
1010 .port_start = ata_sff_port_start, 1010 .port_start = ata_sff_port_start,
@@ -1095,7 +1095,7 @@ static struct ata_port_operations winbond_port_ops = {
1095 1095
1096 .data_xfer = vlb32_data_xfer, 1096 .data_xfer = vlb32_data_xfer,
1097 1097
1098 .irq_clear = ata_bmdma_irq_clear, 1098 .irq_clear = ata_noop_irq_clear,
1099 .irq_on = ata_irq_on, 1099 .irq_on = ata_irq_on,
1100 1100
1101 .port_start = ata_sff_port_start, 1101 .port_start = ata_sff_port_start,