summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2008-04-07 22:47:17 +0900
committerJeff Garzik <jgarzik@redhat.com>2008-04-17 15:44:22 -0400
commit288623a06c652239d2f57d271af12bb024cf7218 (patch)
treee693ca8a46cbedc522cb6f5ca3395d3dc692cfb3
parent5682ed33aae05d10a25c95633ef9d9c062825888 (diff)
libata: clean up port_ops->sff_irq_clear()
->sff_irq_clear() is called only from SFF interrupt handler, so there is no reason to initialize it for non-SFF controllers. Also, ata_sff_irq_clear() can handle both BMDMA and non-BMDMA SFF controllers. This patch kills ata_noop_irq_clear() and removes it from base port_ops and sets ->sff_irq_clear to ata_sff_irq_clear() in sff port_ops instead of bmdma port_ops. Signed-off-by: Tejun Heo <htejun@gmail.com>
-rw-r--r--drivers/ata/libata-core.c10
-rw-r--r--drivers/ata/libata-sff.c2
-rw-r--r--include/linux/libata.h1
3 files changed, 1 insertions, 12 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index a01e02c5ce7a..fd912ccb90f8 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -74,7 +74,6 @@ const unsigned long sata_deb_timing_hotplug[] = { 25, 500, 2000 };
const unsigned long sata_deb_timing_long[] = { 100, 2000, 5000 };
const struct ata_port_operations ata_base_port_ops = {
- .sff_irq_clear = ata_noop_irq_clear,
.prereset = ata_sff_prereset,
.hardreset = sata_sff_hardreset,
.postreset = ata_sff_postreset,
@@ -387,14 +386,6 @@ int atapi_cmd_type(u8 opcode)
}
/**
- * 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_tf_to_fis - Convert ATA taskfile to SATA FIS structure
* @tf: Taskfile to convert
* @pmp: Port multiplier port
@@ -6108,7 +6099,6 @@ EXPORT_SYMBOL_GPL(ata_port_start);
EXPORT_SYMBOL_GPL(ata_do_set_mode);
EXPORT_SYMBOL_GPL(ata_std_qc_defer);
EXPORT_SYMBOL_GPL(ata_noop_qc_prep);
-EXPORT_SYMBOL_GPL(ata_noop_irq_clear);
EXPORT_SYMBOL_GPL(ata_port_probe);
EXPORT_SYMBOL_GPL(ata_dev_disable);
EXPORT_SYMBOL_GPL(sata_set_spd);
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index 04024a556660..c11601617134 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -58,6 +58,7 @@ const struct ata_port_operations ata_sff_port_ops = {
.sff_exec_command = ata_sff_exec_command,
.sff_data_xfer = ata_sff_data_xfer,
.sff_irq_on = ata_sff_irq_on,
+ .sff_irq_clear = ata_sff_irq_clear,
.port_start = ata_sff_port_start,
};
@@ -71,7 +72,6 @@ const struct ata_port_operations ata_bmdma_port_ops = {
.bmdma_start = ata_bmdma_start,
.bmdma_stop = ata_bmdma_stop,
.bmdma_status = ata_bmdma_status,
- .sff_irq_clear = ata_sff_irq_clear,
};
/**
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 584eca19b8f1..603712b59cf3 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -896,7 +896,6 @@ extern void ata_id_string(const u16 *id, unsigned char *s,
unsigned int ofs, unsigned int len);
extern void ata_id_c_string(const u16 *id, unsigned char *s,
unsigned int ofs, unsigned int len);
-extern void ata_noop_irq_clear(struct ata_port *ap);
extern void ata_qc_complete(struct ata_queued_cmd *qc);
extern int ata_qc_complete_multiple(struct ata_port *ap, u32 qc_active,
void (*finish_qc)(struct ata_queued_cmd *));