diff options
| author | Jeff Garzik <jgarzik@redhat.com> | 2004-05-13 12:35:48 -0400 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@redhat.com> | 2004-05-13 12:35:48 -0400 |
| commit | 8fdb45f52c108cf1c02078681b87209a3bf10656 (patch) | |
| tree | dfd840b5cb399dce4f28bdce31463fa046783d40 /include/linux | |
| parent | 141baf80514374935d084c12f2f1e426e9cea5a0 (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/linux')
| -rw-r--r-- | include/linux/libata.h | 3 |
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); |
