summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@redhat.com>2004-05-13 12:35:48 -0400
committerJeff Garzik <jgarzik@redhat.com>2004-05-13 12:35:48 -0400
commit8fdb45f52c108cf1c02078681b87209a3bf10656 (patch)
treedfd840b5cb399dce4f28bdce31463fa046783d40 /include
parent141baf80514374935d084c12f2f1e426e9cea5a0 (diff)
[libata] add new ->bmdma_setup hook
In order to support some new taskfile protocols, particularly ATAPI, the setup-and-start-DMA hook needs to be split into its component pieces, 'setup' and 'start'. For PCI IDE-style controllers, most of the code is moved into the 'setup' portion, with the 'start' portion only flipping a single bit in hardware.
Diffstat (limited to 'include')
-rw-r--r--include/linux/libata.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h
index efcc745effae..cf2a784a8850 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -335,6 +335,7 @@ struct ata_port_operations {
void (*phy_reset) (struct ata_port *ap);
void (*post_set_mode) (struct ata_port *ap);
+ void (*bmdma_setup) (struct ata_queued_cmd *qc);
void (*bmdma_start) (struct ata_queued_cmd *qc);
void (*fill_sg) (struct ata_queued_cmd *qc);
void (*eng_timeout) (struct ata_port *ap);
@@ -397,7 +398,9 @@ extern int ata_port_start (struct ata_port *ap);
extern void ata_port_stop (struct ata_port *ap);
extern irqreturn_t ata_interrupt (int irq, void *dev_instance, struct pt_regs *regs);
extern void ata_fill_sg(struct ata_queued_cmd *qc);
+extern void ata_bmdma_setup_mmio (struct ata_queued_cmd *qc);
extern void ata_bmdma_start_mmio (struct ata_queued_cmd *qc);
+extern void ata_bmdma_setup_pio (struct ata_queued_cmd *qc);
extern void ata_bmdma_start_pio (struct ata_queued_cmd *qc);
extern int pci_test_config_bits(struct pci_dev *pdev, struct pci_bits *bits);
extern void ata_qc_complete(struct ata_queued_cmd *qc, u8 drv_stat, unsigned int done_late);