aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/libata.h
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2010-05-10 15:41:38 -0400
committerJeff Garzik <jgarzik@redhat.com>2010-05-19 13:35:49 -0400
commitc429137a67b82788d24682153bb9c96501a9ef34 (patch)
treeb24ed75908f08cc9cddb19efc74fcb46be75de8f /include/linux/libata.h
parent5fe7454aa9c6ef5fcf506b0f2dfc20f696891f1a (diff)
libata-sff: port_task is SFF specific
port_task is tightly bound to the standard SFF PIO HSM implementation. Using it for any other purpose would be error-prone and there's no such user and if some drivers need such feature, it would be much better off using its own. Move it inside CONFIG_ATA_SFF and rename it to sff_pio_task. The only function which is exposed to the core layer is ata_sff_flush_pio_task() which is renamed from ata_port_flush_task() and now also takes care of resetting hsm_task_state to HSM_ST_IDLE, which is possible as it's now specific to PIO HSM. Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'include/linux/libata.h')
-rw-r--r--include/linux/libata.h7
1 files changed, 2 insertions, 5 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 85b99b83f990..6888b5c36e0f 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -723,6 +723,7 @@ struct ata_port {
723 struct ata_ioports ioaddr; /* ATA cmd/ctl/dma register blocks */ 723 struct ata_ioports ioaddr; /* ATA cmd/ctl/dma register blocks */
724 u8 ctl; /* cache of ATA control register */ 724 u8 ctl; /* cache of ATA control register */
725 u8 last_ctl; /* Cache last written value */ 725 u8 last_ctl; /* Cache last written value */
726 struct delayed_work sff_pio_task;
726#endif /* CONFIG_ATA_SFF */ 727#endif /* CONFIG_ATA_SFF */
727 728
728 unsigned int pio_mask; 729 unsigned int pio_mask;
@@ -746,8 +747,6 @@ struct ata_port {
746 struct ata_host *host; 747 struct ata_host *host;
747 struct device *dev; 748 struct device *dev;
748 749
749 void *port_task_data;
750 struct delayed_work port_task;
751 struct delayed_work hotplug_task; 750 struct delayed_work hotplug_task;
752 struct work_struct scsi_rescan_task; 751 struct work_struct scsi_rescan_task;
753 752
@@ -1031,9 +1030,6 @@ extern int ata_cable_sata(struct ata_port *ap);
1031extern int ata_cable_ignore(struct ata_port *ap); 1030extern int ata_cable_ignore(struct ata_port *ap);
1032extern int ata_cable_unknown(struct ata_port *ap); 1031extern int ata_cable_unknown(struct ata_port *ap);
1033 1032
1034extern void ata_pio_queue_task(struct ata_port *ap, void *data,
1035 unsigned long delay);
1036
1037/* Timing helpers */ 1033/* Timing helpers */
1038extern unsigned int ata_pio_need_iordy(const struct ata_device *); 1034extern unsigned int ata_pio_need_iordy(const struct ata_device *);
1039extern const struct ata_timing *ata_timing_find_mode(u8 xfer_mode); 1035extern const struct ata_timing *ata_timing_find_mode(u8 xfer_mode);
@@ -1597,6 +1593,7 @@ extern void ata_sff_irq_on(struct ata_port *ap);
1597extern void ata_sff_irq_clear(struct ata_port *ap); 1593extern void ata_sff_irq_clear(struct ata_port *ap);
1598extern int ata_sff_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc, 1594extern int ata_sff_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc,
1599 u8 status, int in_wq); 1595 u8 status, int in_wq);
1596extern void ata_sff_queue_pio_task(struct ata_port *ap, unsigned long delay);
1600extern unsigned int ata_sff_qc_issue(struct ata_queued_cmd *qc); 1597extern unsigned int ata_sff_qc_issue(struct ata_queued_cmd *qc);
1601extern bool ata_sff_qc_fill_rtf(struct ata_queued_cmd *qc); 1598extern bool ata_sff_qc_fill_rtf(struct ata_queued_cmd *qc);
1602extern unsigned int ata_sff_host_intr(struct ata_port *ap, 1599extern unsigned int ata_sff_host_intr(struct ata_port *ap,