Commit 358f9a77 authored by Tejun Heo's avatar Tejun Heo Committed by Jeff Garzik

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: default avatarTejun Heo <htejun@gmail.com>
parent c1bc899f
...@@ -244,7 +244,6 @@ static int ahci_scr_read(struct ata_port *ap, unsigned int sc_reg, u32 *val); ...@@ -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_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 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 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 int ahci_port_start(struct ata_port *ap);
static void ahci_port_stop(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); 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 = { ...@@ -307,7 +306,7 @@ static const struct ata_port_operations ahci_ops = {
.qc_prep = ahci_qc_prep, .qc_prep = ahci_qc_prep,
.qc_issue = ahci_qc_issue, .qc_issue = ahci_qc_issue,
.irq_clear = ahci_irq_clear, .irq_clear = ata_noop_irq_clear,
.scr_read = ahci_scr_read, .scr_read = ahci_scr_read,
.scr_write = ahci_scr_write, .scr_write = ahci_scr_write,
...@@ -343,7 +342,7 @@ static const struct ata_port_operations ahci_vt8251_ops = { ...@@ -343,7 +342,7 @@ static const struct ata_port_operations ahci_vt8251_ops = {
.qc_prep = ahci_qc_prep, .qc_prep = ahci_qc_prep,
.qc_issue = ahci_qc_issue, .qc_issue = ahci_qc_issue,
.irq_clear = ahci_irq_clear, .irq_clear = ata_noop_irq_clear,
.scr_read = ahci_scr_read, .scr_read = ahci_scr_read,
.scr_write = ahci_scr_write, .scr_write = ahci_scr_write,
...@@ -377,7 +376,7 @@ static const struct ata_port_operations ahci_p5wdh_ops = { ...@@ -377,7 +376,7 @@ static const struct ata_port_operations ahci_p5wdh_ops = {
.qc_prep = ahci_qc_prep, .qc_prep = ahci_qc_prep,
.qc_issue = ahci_qc_issue, .qc_issue = ahci_qc_issue,
.irq_clear = ahci_irq_clear, .irq_clear = ata_noop_irq_clear,
.scr_read = ahci_scr_read, .scr_read = ahci_scr_read,
.scr_write = ahci_scr_write, .scr_write = ahci_scr_write,
...@@ -1769,11 +1768,6 @@ static void ahci_port_intr(struct ata_port *ap) ...@@ -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) static irqreturn_t ahci_interrupt(int irq, void *dev_instance)
{ {
struct ata_host *host = dev_instance; struct ata_host *host = dev_instance;
......
...@@ -7824,6 +7824,7 @@ EXPORT_SYMBOL_GPL(ata_noop_qc_prep); ...@@ -7824,6 +7824,7 @@ EXPORT_SYMBOL_GPL(ata_noop_qc_prep);
EXPORT_SYMBOL_GPL(ata_bmdma_setup); EXPORT_SYMBOL_GPL(ata_bmdma_setup);
EXPORT_SYMBOL_GPL(ata_bmdma_start); EXPORT_SYMBOL_GPL(ata_bmdma_start);
EXPORT_SYMBOL_GPL(ata_bmdma_irq_clear); 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_status);
EXPORT_SYMBOL_GPL(ata_bmdma_stop); EXPORT_SYMBOL_GPL(ata_bmdma_stop);
EXPORT_SYMBOL_GPL(ata_bmdma_freeze); EXPORT_SYMBOL_GPL(ata_bmdma_freeze);
......
...@@ -302,6 +302,14 @@ void ata_bmdma_irq_clear(struct ata_port *ap) ...@@ -302,6 +302,14 @@ void ata_bmdma_irq_clear(struct ata_port *ap)
iowrite8(ioread8(mmio + ATA_DMA_STATUS), mmio + ATA_DMA_STATUS); 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 * ata_bmdma_status - Read PCI IDE BMDMA status
* @ap: Port associated with this ATA transaction. * @ap: Port associated with this ATA transaction.
......
...@@ -380,7 +380,7 @@ static struct ata_port_operations ali_early_port_ops = { ...@@ -380,7 +380,7 @@ static struct ata_port_operations ali_early_port_ops = {
.data_xfer = ata_data_xfer, .data_xfer = ata_data_xfer,
.irq_handler = ata_interrupt, .irq_handler = ata_interrupt,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
......
...@@ -166,11 +166,6 @@ static void pata_at32_set_piomode(struct ata_port *ap, struct ata_device *adev) ...@@ -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 = { static struct scsi_host_template at32_sht = {
.module = THIS_MODULE, .module = THIS_MODULE,
.name = DRV_NAME, .name = DRV_NAME,
...@@ -208,7 +203,7 @@ static struct ata_port_operations at32_port_ops = { ...@@ -208,7 +203,7 @@ static struct ata_port_operations at32_port_ops = {
.data_xfer = ata_data_xfer, .data_xfer = ata_data_xfer,
.irq_clear = pata_at32_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
......
...@@ -322,11 +322,6 @@ static struct scsi_host_template pata_icside_sht = { ...@@ -322,11 +322,6 @@ static struct scsi_host_template pata_icside_sht = {
.bios_param = ata_std_bios_param, .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) static void pata_icside_postreset(struct ata_link *link, unsigned int *classes)
{ {
struct ata_port *ap = link->ap; struct ata_port *ap = link->ap;
...@@ -380,7 +375,7 @@ static struct ata_port_operations pata_icside_port_ops = { ...@@ -380,7 +375,7 @@ static struct ata_port_operations pata_icside_port_ops = {
.error_handler = pata_icside_error_handler, .error_handler = pata_icside_error_handler,
.post_internal_cmd = pata_icside_bmdma_stop, .post_internal_cmd = pata_icside_bmdma_stop,
.irq_clear = ata_dummy_noret, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.bmdma_stop = pata_icside_bmdma_stop, .bmdma_stop = pata_icside_bmdma_stop,
......
...@@ -55,7 +55,7 @@ static struct ata_port_operations isapnp_port_ops = { ...@@ -55,7 +55,7 @@ static struct ata_port_operations isapnp_port_ops = {
.data_xfer = ata_data_xfer, .data_xfer = ata_data_xfer,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
......
...@@ -126,7 +126,7 @@ static struct ata_port_operations ixp4xx_port_ops = { ...@@ -126,7 +126,7 @@ static struct ata_port_operations ixp4xx_port_ops = {
.cable_detect = ata_cable_40wire, .cable_detect = ata_cable_40wire,
.irq_handler = ata_interrupt, .irq_handler = ata_interrupt,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_port_start, .port_start = ata_port_start,
......
...@@ -252,7 +252,7 @@ static struct ata_port_operations simple_port_ops = { ...@@ -252,7 +252,7 @@ static struct ata_port_operations simple_port_ops = {
.data_xfer = ata_data_xfer_noirq, .data_xfer = ata_data_xfer_noirq,
.irq_handler = ata_interrupt, .irq_handler = ata_interrupt,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
...@@ -279,7 +279,7 @@ static struct ata_port_operations legacy_port_ops = { ...@@ -279,7 +279,7 @@ static struct ata_port_operations legacy_port_ops = {
.data_xfer = ata_data_xfer_noirq, .data_xfer = ata_data_xfer_noirq,
.irq_handler = ata_interrupt, .irq_handler = ata_interrupt,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
...@@ -393,7 +393,7 @@ static struct ata_port_operations pdc20230_port_ops = { ...@@ -393,7 +393,7 @@ static struct ata_port_operations pdc20230_port_ops = {
.data_xfer = pdc_data_xfer_vlb, .data_xfer = pdc_data_xfer_vlb,
.irq_handler = ata_interrupt, .irq_handler = ata_interrupt,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
...@@ -447,7 +447,7 @@ static struct ata_port_operations ht6560a_port_ops = { ...@@ -447,7 +447,7 @@ static struct ata_port_operations ht6560a_port_ops = {
.data_xfer = ata_data_xfer, /* Check vlb/noirq */ .data_xfer = ata_data_xfer, /* Check vlb/noirq */
.irq_handler = ata_interrupt, .irq_handler = ata_interrupt,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
...@@ -512,7 +512,7 @@ static struct ata_port_operations ht6560b_port_ops = { ...@@ -512,7 +512,7 @@ static struct ata_port_operations ht6560b_port_ops = {
.data_xfer = ata_data_xfer, /* FIXME: Check 32bit and noirq */ .data_xfer = ata_data_xfer, /* FIXME: Check 32bit and noirq */
.irq_handler = ata_interrupt, .irq_handler = ata_interrupt,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
...@@ -633,7 +633,7 @@ static struct ata_port_operations opti82c611a_port_ops = { ...@@ -633,7 +633,7 @@ static struct ata_port_operations opti82c611a_port_ops = {
.data_xfer = ata_data_xfer, .data_xfer = ata_data_xfer,
.irq_handler = ata_interrupt, .irq_handler = ata_interrupt,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
...@@ -765,7 +765,7 @@ static struct ata_port_operations opti82c46x_port_ops = { ...@@ -765,7 +765,7 @@ static struct ata_port_operations opti82c46x_port_ops = {
.data_xfer = ata_data_xfer, .data_xfer = ata_data_xfer,
.irq_handler = ata_interrupt, .irq_handler = ata_interrupt,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
...@@ -950,7 +950,7 @@ static struct ata_port_operations qdi6500_port_ops = { ...@@ -950,7 +950,7 @@ static struct ata_port_operations qdi6500_port_ops = {
.data_xfer = vlb32_data_xfer, .data_xfer = vlb32_data_xfer,
.irq_handler = ata_interrupt, .irq_handler = ata_interrupt,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
...@@ -977,7 +977,7 @@ static struct ata_port_operations qdi6580_port_ops = { ...@@ -977,7 +977,7 @@ static struct ata_port_operations qdi6580_port_ops = {
.data_xfer = vlb32_data_xfer, .data_xfer = vlb32_data_xfer,
.irq_handler = ata_interrupt, .irq_handler = ata_interrupt,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
...@@ -1004,7 +1004,7 @@ static struct ata_port_operations qdi6580dp_port_ops = { ...@@ -1004,7 +1004,7 @@ static struct ata_port_operations qdi6580dp_port_ops = {
.data_xfer = vlb32_data_xfer, .data_xfer = vlb32_data_xfer,
.irq_handler = ata_interrupt, .irq_handler = ata_interrupt,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
...@@ -1095,7 +1095,7 @@ static struct ata_port_operations winbond_port_ops = { ...@@ -1095,7 +1095,7 @@ static struct ata_port_operations winbond_port_ops = {
.data_xfer = vlb32_data_xfer, .data_xfer = vlb32_data_xfer,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
......
...@@ -296,7 +296,7 @@ static struct ata_port_operations mpc52xx_ata_port_ops = { ...@@ -296,7 +296,7 @@ static struct ata_port_operations mpc52xx_ata_port_ops = {
.qc_prep = ata_qc_prep, .qc_prep = ata_qc_prep,
.qc_issue = ata_qc_issue_prot, .qc_issue = ata_qc_issue_prot,
.data_xfer = ata_data_xfer, .data_xfer = ata_data_xfer,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_port_start, .port_start = ata_port_start,
}; };
......
...@@ -187,7 +187,7 @@ static struct ata_port_operations mpiix_port_ops = { ...@@ -187,7 +187,7 @@ static struct ata_port_operations mpiix_port_ops = {
.qc_issue = mpiix_qc_issue_prot, .qc_issue = mpiix_qc_issue_prot,
.data_xfer = ata_data_xfer, .data_xfer = ata_data_xfer,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
......
...@@ -182,7 +182,7 @@ static struct ata_port_operations ns87410_port_ops = { ...@@ -182,7 +182,7 @@ static struct ata_port_operations ns87410_port_ops = {
.data_xfer = ata_data_xfer, .data_xfer = ata_data_xfer,
.irq_handler = ata_interrupt, .irq_handler = ata_interrupt,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
......
...@@ -164,7 +164,7 @@ static struct ata_port_operations pcmcia_port_ops = { ...@@ -164,7 +164,7 @@ static struct ata_port_operations pcmcia_port_ops = {
.data_xfer = ata_data_xfer_noirq, .data_xfer = ata_data_xfer_noirq,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
...@@ -189,7 +189,7 @@ static struct ata_port_operations pcmcia_8bit_port_ops = { ...@@ -189,7 +189,7 @@ static struct ata_port_operations pcmcia_8bit_port_ops = {
.data_xfer = ata_data_xfer_8bit, .data_xfer = ata_data_xfer_8bit,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
......
...@@ -86,7 +86,7 @@ static struct ata_port_operations pata_platform_port_ops = { ...@@ -86,7 +86,7 @@ static struct ata_port_operations pata_platform_port_ops = {
.data_xfer = ata_data_xfer_noirq, .data_xfer = ata_data_xfer_noirq,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_dummy_ret0, .port_start = ata_dummy_ret0,
......
...@@ -191,7 +191,7 @@ static struct ata_port_operations qdi6500_port_ops = { ...@@ -191,7 +191,7 @@ static struct ata_port_operations qdi6500_port_ops = {
.data_xfer = qdi_data_xfer, .data_xfer = qdi_data_xfer,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
...@@ -217,7 +217,7 @@ static struct ata_port_operations qdi6580_port_ops = { ...@@ -217,7 +217,7 @@ static struct ata_port_operations qdi6580_port_ops = {
.data_xfer = qdi_data_xfer, .data_xfer = qdi_data_xfer,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
......
...@@ -117,10 +117,6 @@ static irqreturn_t rb500_pata_irq_handler(int irq, void *dev_instance) ...@@ -117,10 +117,6 @@ static irqreturn_t rb500_pata_irq_handler(int irq, void *dev_instance)
return IRQ_HANDLED; return IRQ_HANDLED;
} }
static void rb500_pata_irq_clear(struct ata_port *ap)
{
}
static int rb500_pata_port_start(struct ata_port *ap) static int rb500_pata_port_start(struct ata_port *ap)
{ {
return 0; return 0;
...@@ -144,7 +140,7 @@ static struct ata_port_operations rb500_pata_port_ops = { ...@@ -144,7 +140,7 @@ static struct ata_port_operations rb500_pata_port_ops = {
.error_handler = ata_bmdma_error_handler, .error_handler = ata_bmdma_error_handler,
.irq_handler = rb500_pata_irq_handler, .irq_handler = rb500_pata_irq_handler,
.irq_clear = rb500_pata_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = rb500_pata_port_start, .port_start = rb500_pata_port_start,
......
...@@ -159,7 +159,7 @@ static struct ata_port_operations winbond_port_ops = { ...@@ -159,7 +159,7 @@ static struct ata_port_operations winbond_port_ops = {
.data_xfer = winbond_data_xfer, .data_xfer = winbond_data_xfer,
.irq_clear = ata_bmdma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = ata_sff_port_start, .port_start = ata_sff_port_start,
......
...@@ -138,7 +138,6 @@ static unsigned int adma_qc_issue(struct ata_queued_cmd *qc); ...@@ -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 int adma_check_atapi_dma(struct ata_queued_cmd *qc);
static void adma_bmdma_stop(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 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_freeze(struct ata_port *ap);
static void adma_thaw(struct ata_port *ap); static void adma_thaw(struct ata_port *ap);
static void adma_error_handler(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 = { ...@@ -174,7 +173,7 @@ static const struct ata_port_operations adma_ata_ops = {
.freeze = adma_freeze, .freeze = adma_freeze,
.thaw = adma_thaw, .thaw = adma_thaw,
.error_handler = adma_error_handler, .error_handler = adma_error_handler,
.irq_clear = adma_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.port_start = adma_port_start, .port_start = adma_port_start,
.port_stop = adma_port_stop, .port_stop = adma_port_stop,
...@@ -223,11 +222,6 @@ static u8 adma_bmdma_status(struct ata_port *ap) ...@@ -223,11 +222,6 @@ static u8 adma_bmdma_status(struct ata_port *ap)
return 0; return 0;
} }
static void adma_irq_clear(struct ata_port *ap)
{
/* nothing */
}
static void adma_reset_engine(struct ata_port *ap) static void adma_reset_engine(struct ata_port *ap)
{ {
void __iomem *chan = ADMA_PORT_REGS(ap); void __iomem *chan = ADMA_PORT_REGS(ap);
......
...@@ -933,11 +933,6 @@ static void sata_fsl_post_internal_cmd(struct ata_queued_cmd *qc) ...@@ -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) static void sata_fsl_error_intr(struct ata_port *ap)
{ {
struct ata_link *link = &ap->link; struct ata_link *link = &ap->link;
...@@ -1223,7 +1218,7 @@ static const struct ata_port_operations sata_fsl_ops = { ...@@ -1223,7 +1218,7 @@ static const struct ata_port_operations sata_fsl_ops = {
.qc_prep = sata_fsl_qc_prep, .qc_prep = sata_fsl_qc_prep,
.qc_issue = sata_fsl_qc_issue, .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_read = sata_fsl_scr_read,
.scr_write = sata_fsl_scr_write, .scr_write = sata_fsl_scr_write,
......
...@@ -266,11 +266,6 @@ static u8 inic_bmdma_status(struct ata_port *ap) ...@@ -266,11 +266,6 @@ static u8 inic_bmdma_status(struct ata_port *ap)
return ATA_DMA_INTR; return ATA_DMA_INTR;
} }
static void inic_irq_clear(struct ata_port *ap)
{
/* noop */
}
static void inic_host_intr(struct ata_port *ap) static void inic_host_intr(struct ata_port *ap)
{ {
void __iomem *port_base = inic_port_base(ap); void __iomem *port_base = inic_port_base(ap);
...@@ -555,7 +550,7 @@ static struct ata_port_operations inic_port_ops = { ...@@ -555,7 +550,7 @@ static struct ata_port_operations inic_port_ops = {
.bmdma_stop = inic_bmdma_stop, .bmdma_stop = inic_bmdma_stop,
.bmdma_status = inic_bmdma_status, .bmdma_status = inic_bmdma_status,
.irq_clear = inic_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.qc_prep = ata_qc_prep, .qc_prep = ata_qc_prep,
......
...@@ -461,7 +461,6 @@ struct mv_hw_ops { ...@@ -461,7 +461,6 @@ struct mv_hw_ops {
void (*reset_bus)(struct ata_host *host, void __iomem *mmio); 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_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 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); 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 = { ...@@ -564,7 +563,7 @@ static const struct ata_port_operations mv5_ops = {
.qc_issue = mv_qc_issue, .qc_issue = mv_qc_issue,
.data_xfer = ata_data_xfer, .data_xfer = ata_data_xfer,
.irq_clear = mv_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.error_handler = mv_error_handler, .error_handler = mv_error_handler,
...@@ -592,7 +591,7 @@ static const struct ata_port_operations mv6_ops = { ...@@ -592,7 +591,7 @@ static const struct ata_port_operations mv6_ops = {
.qc_issue = mv_qc_issue, .qc_issue = mv_qc_issue,
.data_xfer = ata_data_xfer, .data_xfer = ata_data_xfer,
.irq_clear = mv_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.error_handler = mv_error_handler, .error_handler = mv_error_handler,
...@@ -620,7 +619,7 @@ static const struct ata_port_operations mv_iie_ops = { ...@@ -620,7 +619,7 @@ static const struct ata_port_operations mv_iie_ops = {
.qc_issue = mv_qc_issue, .qc_issue = mv_qc_issue,
.data_xfer = ata_data_xfer, .data_xfer = ata_data_xfer,
.irq_clear = mv_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.error_handler = mv_error_handler, .error_handler = mv_error_handler,
...@@ -801,10 +800,6 @@ static inline int mv_get_hc_count(unsigned long port_flags) ...@@ -801,10 +800,6 @@ static inline int mv_get_hc_count(unsigned long port_flags)
return ((port_flags & MV_FLAG_DUAL_HC) ? 2 : 1); 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, static void mv_set_edma_ptrs(void __iomem *port_mmio,
struct mv_host_priv *hpriv, struct mv_host_priv *hpriv,
struct mv_port_priv *pp) struct mv_port_priv *pp)
......
...@@ -121,7 +121,6 @@ static unsigned int qs_qc_issue(struct ata_queued_cmd *qc); ...@@ -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 int qs_check_atapi_dma(struct ata_queued_cmd *qc);
static void qs_bmdma_stop(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 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_freeze(struct ata_port *ap);
static void qs_thaw(struct ata_port *ap); static void qs_thaw(struct ata_port *ap);
static void qs_error_handler(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 = { ...@@ -157,7 +156,7 @@ static const struct ata_port_operations qs_ata_ops = {
.freeze = qs_freeze, .freeze = qs_freeze,
.thaw = qs_thaw, .thaw = qs_thaw,
.error_handler = qs_error_handler, .error_handler = qs_error_handler,
.irq_clear = qs_irq_clear, .irq_clear = ata_noop_irq_clear,
.irq_on = ata_irq_on, .irq_on = ata_irq_on,
.scr_read = qs_scr_read, .scr_read = qs_scr_read,
.scr_write = qs_scr_write, .scr_write = qs_scr_write,
...@@ -211,11 +210,6 @@ static u8 qs_bmdma_status(struct ata_port *ap) ...@@ -211,11 +210,6 @@ static u8 qs_bmdma_status(struct ata_port *ap)
return 0; return 0;
} }
static void qs_irq_clear(struct ata_port *ap)
{
/* nothing */
}
static inline void qs_enter_reg_mode(struct ata_port *ap) static inline void qs_enter_reg_mode(struct ata_port *ap)
{ {
u8 __iomem *chan = qs_mmio_base(ap->host) + (ap->port_no * 0x4000); u8 __iomem *chan = qs_mmio_base(ap->host) + (ap->port_no * 0x4000);
......
...@@ -348,7 +348,6 @@ static void sil24_tf_read(struct ata_port *ap, struct ata_taskfile *tf); ...@@ -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 int sil24_qc_defer(struct ata_queued_cmd *qc);
static void sil24_qc_prep(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 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_attach(struct ata_port *ap);
static void sil24_pmp_detach(struct ata_port *ap); static void sil24_pmp_detach(struct ata_port *ap);
static void sil24_freeze(struct ata_port *ap); static void sil24_freeze(struct ata_port *ap);
...@@ -416,7 +415,7 @@ static const struct ata_port_operations sil24_ops = { ...@@ -416,7 +415,7 @@ static const struct ata_port_operations sil24_ops = {
.qc_prep = sil24_qc_prep, .qc_prep = sil24_qc_prep,
.qc_issue = sil24_qc_issue, .qc_issue = sil24_qc_issue,
.irq_clear = sil24_irq_clear, .irq_clear = ata_noop_irq_clear,
.scr_read = sil24_scr_read, .scr_read = sil24_scr_read,
.scr_write = sil24_scr_write, .scr_write = sil24_scr_write,
...@@ -921,11 +920,6 @@ static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc) ...@@ -921,11 +920,6 @@ static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc)
return 0; return 0;
} }
static void sil24_irq_clear(struct ata_port *ap)
{
/* unused */
}
static void sil24_pmp_attach(struct ata_port *ap) static void sil24_pmp_attach(struct ata_port *ap)
{ {
sil24_config_pmp(ap, 1); sil24_config_pmp(ap, 1);
......
...@@ -896,6 +896,7 @@ extern void ata_bmdma_start(struct ata_queued_cmd *qc); ...@@ -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 void ata_bmdma_stop(struct ata_queued_cmd *qc);
extern u8 ata_bmdma_status(struct ata_port *ap); extern u8 ata_bmdma_status(struct ata_port *ap);
extern void ata_bmdma_irq_clear(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_freeze(struct ata_port *ap);
extern void ata_bmdma_thaw(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, extern void ata_bmdma_drive_eh(struct ata_port *ap, ata_prereset_fn_t prereset,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment