]> err.no Git - linux-2.6/commitdiff
libata: implement and use ata_noop_irq_clear()
authorTejun Heo <htejun@gmail.com>
Tue, 25 Mar 2008 03:22:47 +0000 (12:22 +0900)
committerJeff Garzik <jgarzik@redhat.com>
Thu, 17 Apr 2008 19:44:16 +0000 (15:44 -0400)
->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>
24 files changed:
drivers/ata/ahci.c
drivers/ata/libata-core.c
drivers/ata/libata-sff.c
drivers/ata/pata_ali.c
drivers/ata/pata_at32.c
drivers/ata/pata_icside.c
drivers/ata/pata_isapnp.c
drivers/ata/pata_ixp4xx_cf.c
drivers/ata/pata_legacy.c
drivers/ata/pata_mpc52xx.c
drivers/ata/pata_mpiix.c
drivers/ata/pata_ns87410.c
drivers/ata/pata_pcmcia.c
drivers/ata/pata_platform.c
drivers/ata/pata_qdi.c
drivers/ata/pata_rb500_cf.c
drivers/ata/pata_winbond.c
drivers/ata/pdc_adma.c
drivers/ata/sata_fsl.c
drivers/ata/sata_inic162x.c
drivers/ata/sata_mv.c
drivers/ata/sata_qstor.c
drivers/ata/sata_sil24.c
include/linux/libata.h

index 1bd258e5390f5335679c3499046b9c8d4763d599..492e521715d6efe12775c94c8295702af5239865 100644 (file)
@@ -244,7 +244,6 @@ static int ahci_scr_read(struct ata_port *ap, unsigned int sc_reg, u32 *val);
 static int ahci_scr_write(struct ata_port *ap, unsigned int sc_reg, u32 val);
 static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
 static unsigned int ahci_qc_issue(struct ata_queued_cmd *qc);
-static void ahci_irq_clear(struct ata_port *ap);
 static int ahci_port_start(struct ata_port *ap);
 static void ahci_port_stop(struct ata_port *ap);
 static void ahci_tf_read(struct ata_port *ap, struct ata_taskfile *tf);
@@ -307,7 +306,7 @@ static const struct ata_port_operations ahci_ops = {
        .qc_prep                = ahci_qc_prep,
        .qc_issue               = ahci_qc_issue,
 
-       .irq_clear              = ahci_irq_clear,
+       .irq_clear              = ata_noop_irq_clear,
 
        .scr_read               = ahci_scr_read,
        .scr_write              = ahci_scr_write,
@@ -343,7 +342,7 @@ static const struct ata_port_operations ahci_vt8251_ops = {
        .qc_prep                = ahci_qc_prep,
        .qc_issue               = ahci_qc_issue,
 
-       .irq_clear              = ahci_irq_clear,
+       .irq_clear              = ata_noop_irq_clear,
 
        .scr_read               = ahci_scr_read,
        .scr_write              = ahci_scr_write,
@@ -377,7 +376,7 @@ static const struct ata_port_operations ahci_p5wdh_ops = {
        .qc_prep                = ahci_qc_prep,
        .qc_issue               = ahci_qc_issue,
 
-       .irq_clear              = ahci_irq_clear,
+       .irq_clear              = ata_noop_irq_clear,
 
        .scr_read               = ahci_scr_read,
        .scr_write              = ahci_scr_write,
@@ -1769,11 +1768,6 @@ static void ahci_port_intr(struct ata_port *ap)
        }
 }
 
-static void ahci_irq_clear(struct ata_port *ap)
-{
-       /* TODO */
-}
-
 static irqreturn_t ahci_interrupt(int irq, void *dev_instance)
 {
        struct ata_host *host = dev_instance;
index 4dc429fd00560172b0a6f17eb9b08aa21132cef6..394edf937cf229d6d92ab51fea2b33b841ab9f29 100644 (file)
@@ -7824,6 +7824,7 @@ EXPORT_SYMBOL_GPL(ata_noop_qc_prep);
 EXPORT_SYMBOL_GPL(ata_bmdma_setup);
 EXPORT_SYMBOL_GPL(ata_bmdma_start);
 EXPORT_SYMBOL_GPL(ata_bmdma_irq_clear);
+EXPORT_SYMBOL_GPL(ata_noop_irq_clear);
 EXPORT_SYMBOL_GPL(ata_bmdma_status);
 EXPORT_SYMBOL_GPL(ata_bmdma_stop);
 EXPORT_SYMBOL_GPL(ata_bmdma_freeze);
index 20dc572fb45a1c1b780c8d8a8303b88643a6fbbd..1cf03d41aa3356f5950c8386c56f988d154f4f16 100644 (file)
@@ -302,6 +302,14 @@ void ata_bmdma_irq_clear(struct ata_port *ap)
        iowrite8(ioread8(mmio + ATA_DMA_STATUS), mmio + ATA_DMA_STATUS);
 }
 
+/**
+ *     ata_noop_irq_clear - Noop placeholder for irq_clear
+ *     @ap: Port associated with this ATA transaction.
+ */
+void ata_noop_irq_clear(struct ata_port *ap)
+{
+}
+
 /**
  *     ata_bmdma_status - Read PCI IDE BMDMA status
  *     @ap: Port associated with this ATA transaction.
index 3814aebefb2dd78cb2a37c820c3db30db90d400f..84b748aef3865923d372d1ea69a749f9d31e473f 100644 (file)
@@ -380,7 +380,7 @@ static struct ata_port_operations ali_early_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,
index db057b183d601b95c9ff950bfaef5acba39de562..27c959f35c2ca63bf35fb89b6b09f7a65b486483 100644 (file)
@@ -166,11 +166,6 @@ static void pata_at32_set_piomode(struct ata_port *ap, struct ata_device *adev)
        }
 }
 
-static void pata_at32_irq_clear(struct ata_port *ap)
-{
-       /* No DMA controller yet */
-}
-
 static struct scsi_host_template at32_sht = {
        .module                 = THIS_MODULE,
        .name                   = DRV_NAME,
@@ -208,7 +203,7 @@ static struct ata_port_operations at32_port_ops = {
 
        .data_xfer              = ata_data_xfer,
 
-       .irq_clear              = pata_at32_irq_clear,
+       .irq_clear              = ata_noop_irq_clear,
        .irq_on                 = ata_irq_on,
 
        .port_start             = ata_sff_port_start,
index f97068be2d7971e915802126c52fff68f8618109..e1230cae7ff1df53305b36982c5f23c77533f825 100644 (file)
@@ -322,11 +322,6 @@ static struct scsi_host_template pata_icside_sht = {
        .bios_param             = ata_std_bios_param,
 };
 
-/* wish this was exported from libata-core */
-static void ata_dummy_noret(struct ata_port *port)
-{
-}
-
 static void pata_icside_postreset(struct ata_link *link, unsigned int *classes)
 {
        struct ata_port *ap = link->ap;
@@ -380,7 +375,7 @@ static struct ata_port_operations pata_icside_port_ops = {
        .error_handler          = pata_icside_error_handler,
        .post_internal_cmd      = pata_icside_bmdma_stop,
 
-       .irq_clear              = ata_dummy_noret,
+       .irq_clear              = ata_noop_irq_clear,
        .irq_on                 = ata_irq_on,
 
        .bmdma_stop             = pata_icside_bmdma_stop,
index 4320e79863219d6858e74d376c991be6588a6cf7..ef561de0c24d31388f30c076d9bedaf373422e52 100644 (file)
@@ -55,7 +55,7 @@ static struct ata_port_operations isapnp_port_ops = {
 
        .data_xfer      = ata_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,
index 030878fedeb5c655641803a96108819b111b6c95..83e38cc077e1581b2570052bd2a35d8f26e30f7c 100644 (file)
@@ -126,7 +126,7 @@ static struct ata_port_operations ixp4xx_port_ops = {
        .cable_detect           = ata_cable_40wire,
 
        .irq_handler            = ata_interrupt,
-       .irq_clear              = ata_bmdma_irq_clear,
+       .irq_clear              = ata_noop_irq_clear,
        .irq_on                 = ata_irq_on,
 
        .port_start             = ata_port_start,
index 50fe08ebe23c49c13fd4d115b0af6e34ccc04c4d..6ac02f7d5289de70829b2046e9888769e0ed7d1f 100644 (file)
@@ -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,
index 5413ebfa72e5baacd72ad9af80df6d58859aeb63..d84e0c8ea02ff214caaeba23f1bf379bca4339a9 100644 (file)
@@ -296,7 +296,7 @@ static struct ata_port_operations mpc52xx_ata_port_ops = {
        .qc_prep                = ata_qc_prep,
        .qc_issue               = ata_qc_issue_prot,
        .data_xfer              = ata_data_xfer,
-       .irq_clear              = ata_bmdma_irq_clear,
+       .irq_clear              = ata_noop_irq_clear,
        .irq_on                 = ata_irq_on,
        .port_start             = ata_port_start,
 };
index c0d9e0cf208c5737f57f32bac833b3f42d29feaa..ced6372749b3c4a60ba15893d2d91e06ee7c1dd9 100644 (file)
@@ -187,7 +187,7 @@ static struct ata_port_operations mpiix_port_ops = {
        .qc_issue       = mpiix_qc_issue_prot,
        .data_xfer      = ata_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,
index 9fe66fd75017ef692c98c141f523b7512d4329b0..d182bdf31ee105da3c711136a7c3716531bd226a 100644 (file)
@@ -182,7 +182,7 @@ static struct ata_port_operations ns87410_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,
index 3e7f6a9da28bd941965c1d5fd887be1054347a7c..9881a9e004a49061afc9499ca52bf466983e25f8 100644 (file)
@@ -164,7 +164,7 @@ static struct ata_port_operations pcmcia_port_ops = {
 
        .data_xfer      = ata_data_xfer_noirq,
 
-       .irq_clear      = ata_bmdma_irq_clear,
+       .irq_clear      = ata_noop_irq_clear,
        .irq_on         = ata_irq_on,
 
        .port_start     = ata_sff_port_start,
@@ -189,7 +189,7 @@ static struct ata_port_operations pcmcia_8bit_port_ops = {
 
        .data_xfer      = ata_data_xfer_8bit,
 
-       .irq_clear      = ata_bmdma_irq_clear,
+       .irq_clear      = ata_noop_irq_clear,
        .irq_on         = ata_irq_on,
 
        .port_start     = ata_sff_port_start,
index aad7adc6ea564c9f50dbbcf443ce1396fdbf7593..a8429f5c3006d2b3879cdd113d9cb78f36d6d971 100644 (file)
@@ -86,7 +86,7 @@ static struct ata_port_operations pata_platform_port_ops = {
 
        .data_xfer              = ata_data_xfer_noirq,
 
-       .irq_clear              = ata_bmdma_irq_clear,
+       .irq_clear              = ata_noop_irq_clear,
        .irq_on                 = ata_irq_on,
 
        .port_start             = ata_dummy_ret0,
index 9f308ed76cc83fc3070469d491033d9f4ef92299..60238d5748a769138e658069c2dc8362e6f63e4e 100644 (file)
@@ -191,7 +191,7 @@ static struct ata_port_operations qdi6500_port_ops = {
 
        .data_xfer      = qdi_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,
@@ -217,7 +217,7 @@ static struct ata_port_operations qdi6580_port_ops = {
 
        .data_xfer      = qdi_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,
index 4ce9b03fe6c845dc349cbe58144cad7f63ee362d..08c32af1c84d4675d34452ba62fa81f7eeb20b43 100644 (file)
@@ -117,10 +117,6 @@ static irqreturn_t rb500_pata_irq_handler(int irq, void *dev_instance)
        return IRQ_HANDLED;
 }
 
-static void rb500_pata_irq_clear(struct ata_port *ap)
-{
-}
-
 static int rb500_pata_port_start(struct ata_port *ap)
 {
        return 0;
@@ -144,7 +140,7 @@ static struct ata_port_operations rb500_pata_port_ops = {
        .error_handler          = ata_bmdma_error_handler,
 
        .irq_handler            = rb500_pata_irq_handler,
-       .irq_clear              = rb500_pata_irq_clear,
+       .irq_clear              = ata_noop_irq_clear,
        .irq_on                 = ata_irq_on,
 
        .port_start             = rb500_pata_port_start,
index 99c92eda217b730c12994c24422debddcd14154f..5318248782bb1578f68835aaa4dc04a1053b6211 100644 (file)
@@ -159,7 +159,7 @@ static struct ata_port_operations winbond_port_ops = {
 
        .data_xfer      = winbond_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,
index 8e1b7e9c0ae42b7fe66ed4fb047234dbeee10c46..bc2d12a2da30732fce765c1c83077f282b52e09d 100644 (file)
@@ -138,7 +138,6 @@ static unsigned int adma_qc_issue(struct ata_queued_cmd *qc);
 static int adma_check_atapi_dma(struct ata_queued_cmd *qc);
 static void adma_bmdma_stop(struct ata_queued_cmd *qc);
 static u8 adma_bmdma_status(struct ata_port *ap);
-static void adma_irq_clear(struct ata_port *ap);
 static void adma_freeze(struct ata_port *ap);
 static void adma_thaw(struct ata_port *ap);
 static void adma_error_handler(struct ata_port *ap);
@@ -174,7 +173,7 @@ static const struct ata_port_operations adma_ata_ops = {
        .freeze                 = adma_freeze,
        .thaw                   = adma_thaw,
        .error_handler          = adma_error_handler,
-       .irq_clear              = adma_irq_clear,
+       .irq_clear              = ata_noop_irq_clear,
        .irq_on                 = ata_irq_on,
        .port_start             = adma_port_start,
        .port_stop              = adma_port_stop,
@@ -223,11 +222,6 @@ static u8 adma_bmdma_status(struct ata_port *ap)
        return 0;
 }
 
-static void adma_irq_clear(struct ata_port *ap)
-{
-       /* nothing */
-}
-
 static void adma_reset_engine(struct ata_port *ap)
 {
        void __iomem *chan = ADMA_PORT_REGS(ap);
index d23b690ed1a1aed4862b5664e2da93a5eb051cc1..031a512cbaa88bb5bc951d3d6521640ca43eeb40 100644 (file)
@@ -933,11 +933,6 @@ static void sata_fsl_post_internal_cmd(struct ata_queued_cmd *qc)
        }
 }
 
-static void sata_fsl_irq_clear(struct ata_port *ap)
-{
-       /* unused */
-}
-
 static void sata_fsl_error_intr(struct ata_port *ap)
 {
        struct ata_link *link = &ap->link;
@@ -1223,7 +1218,7 @@ static const struct ata_port_operations sata_fsl_ops = {
 
        .qc_prep = sata_fsl_qc_prep,
        .qc_issue = sata_fsl_qc_issue,
-       .irq_clear = sata_fsl_irq_clear,
+       .irq_clear = ata_noop_irq_clear,
 
        .scr_read = sata_fsl_scr_read,
        .scr_write = sata_fsl_scr_write,
index 59e65edc5820123169441619fbb515011e837410..74f14369dc8db3bd02019854b079c140d530a1af 100644 (file)
@@ -266,11 +266,6 @@ static u8 inic_bmdma_status(struct ata_port *ap)
        return ATA_DMA_INTR;
 }
 
-static void inic_irq_clear(struct ata_port *ap)
-{
-       /* noop */
-}
-
 static void inic_host_intr(struct ata_port *ap)
 {
        void __iomem *port_base = inic_port_base(ap);
@@ -555,7 +550,7 @@ static struct ata_port_operations inic_port_ops = {
        .bmdma_stop             = inic_bmdma_stop,
        .bmdma_status           = inic_bmdma_status,
 
-       .irq_clear              = inic_irq_clear,
+       .irq_clear              = ata_noop_irq_clear,
        .irq_on                 = ata_irq_on,
 
        .qc_prep                = ata_qc_prep,
index a4944c8ad46d123779c953b33ac65d44f98d9073..b3b3da4eaa0321b140440913e7e3f8157e75fae1 100644 (file)
@@ -461,7 +461,6 @@ struct mv_hw_ops {
        void (*reset_bus)(struct ata_host *host, void __iomem *mmio);
 };
 
-static void mv_irq_clear(struct ata_port *ap);
 static int mv_scr_read(struct ata_port *ap, unsigned int sc_reg_in, u32 *val);
 static int mv_scr_write(struct ata_port *ap, unsigned int sc_reg_in, u32 val);
 static int mv5_scr_read(struct ata_port *ap, unsigned int sc_reg_in, u32 *val);
@@ -564,7 +563,7 @@ static const struct ata_port_operations mv5_ops = {
        .qc_issue               = mv_qc_issue,
        .data_xfer              = ata_data_xfer,
 
-       .irq_clear              = mv_irq_clear,
+       .irq_clear              = ata_noop_irq_clear,
        .irq_on                 = ata_irq_on,
 
        .error_handler          = mv_error_handler,
@@ -592,7 +591,7 @@ static const struct ata_port_operations mv6_ops = {
        .qc_issue               = mv_qc_issue,
        .data_xfer              = ata_data_xfer,
 
-       .irq_clear              = mv_irq_clear,
+       .irq_clear              = ata_noop_irq_clear,
        .irq_on                 = ata_irq_on,
 
        .error_handler          = mv_error_handler,
@@ -620,7 +619,7 @@ static const struct ata_port_operations mv_iie_ops = {
        .qc_issue               = mv_qc_issue,
        .data_xfer              = ata_data_xfer,
 
-       .irq_clear              = mv_irq_clear,
+       .irq_clear              = ata_noop_irq_clear,
        .irq_on                 = ata_irq_on,
 
        .error_handler          = mv_error_handler,
@@ -801,10 +800,6 @@ static inline int mv_get_hc_count(unsigned long port_flags)
        return ((port_flags & MV_FLAG_DUAL_HC) ? 2 : 1);
 }
 
-static void mv_irq_clear(struct ata_port *ap)
-{
-}
-
 static void mv_set_edma_ptrs(void __iomem *port_mmio,
                             struct mv_host_priv *hpriv,
                             struct mv_port_priv *pp)
index 91cc12c82040d0bb4117649737c46dcc75f7bb31..3c8e97f251f9cb02461a9fd2f59fee8cea169c45 100644 (file)
@@ -121,7 +121,6 @@ static unsigned int qs_qc_issue(struct ata_queued_cmd *qc);
 static int qs_check_atapi_dma(struct ata_queued_cmd *qc);
 static void qs_bmdma_stop(struct ata_queued_cmd *qc);
 static u8 qs_bmdma_status(struct ata_port *ap);
-static void qs_irq_clear(struct ata_port *ap);
 static void qs_freeze(struct ata_port *ap);
 static void qs_thaw(struct ata_port *ap);
 static void qs_error_handler(struct ata_port *ap);
@@ -157,7 +156,7 @@ static const struct ata_port_operations qs_ata_ops = {
        .freeze                 = qs_freeze,
        .thaw                   = qs_thaw,
        .error_handler          = qs_error_handler,
-       .irq_clear              = qs_irq_clear,
+       .irq_clear              = ata_noop_irq_clear,
        .irq_on                 = ata_irq_on,
        .scr_read               = qs_scr_read,
        .scr_write              = qs_scr_write,
@@ -211,11 +210,6 @@ static u8 qs_bmdma_status(struct ata_port *ap)
        return 0;
 }
 
-static void qs_irq_clear(struct ata_port *ap)
-{
-       /* nothing */
-}
-
 static inline void qs_enter_reg_mode(struct ata_port *ap)
 {
        u8 __iomem *chan = qs_mmio_base(ap->host) + (ap->port_no * 0x4000);
index ba0c00e8ee7faf6c086480580a26ae20c7a7ea8d..b85464d51f68c2b95e88f85aa34aece5a936e4db 100644 (file)
@@ -348,7 +348,6 @@ static void sil24_tf_read(struct ata_port *ap, struct ata_taskfile *tf);
 static int sil24_qc_defer(struct ata_queued_cmd *qc);
 static void sil24_qc_prep(struct ata_queued_cmd *qc);
 static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc);
-static void sil24_irq_clear(struct ata_port *ap);
 static void sil24_pmp_attach(struct ata_port *ap);
 static void sil24_pmp_detach(struct ata_port *ap);
 static void sil24_freeze(struct ata_port *ap);
@@ -416,7 +415,7 @@ static const struct ata_port_operations sil24_ops = {
        .qc_prep                = sil24_qc_prep,
        .qc_issue               = sil24_qc_issue,
 
-       .irq_clear              = sil24_irq_clear,
+       .irq_clear              = ata_noop_irq_clear,
 
        .scr_read               = sil24_scr_read,
        .scr_write              = sil24_scr_write,
@@ -921,11 +920,6 @@ static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc)
        return 0;
 }
 
-static void sil24_irq_clear(struct ata_port *ap)
-{
-       /* unused */
-}
-
 static void sil24_pmp_attach(struct ata_port *ap)
 {
        sil24_config_pmp(ap, 1);
index 9476a479691b8ee6728f1da0d1d579b18c173f76..639298af583efbd128b4490db3447cd30dfeab2d 100644 (file)
@@ -896,6 +896,7 @@ extern void ata_bmdma_start(struct ata_queued_cmd *qc);
 extern void ata_bmdma_stop(struct ata_queued_cmd *qc);
 extern u8   ata_bmdma_status(struct ata_port *ap);
 extern void ata_bmdma_irq_clear(struct ata_port *ap);
+extern void ata_noop_irq_clear(struct ata_port *ap);
 extern void ata_bmdma_freeze(struct ata_port *ap);
 extern void ata_bmdma_thaw(struct ata_port *ap);
 extern void ata_bmdma_drive_eh(struct ata_port *ap, ata_prereset_fn_t prereset,