aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2007-06-07 11:19:15 -0400
committerJeff Garzik <jeff@garzik.org>2007-06-09 22:40:28 -0400
commitd92e74d353345d19f762e9501a50b0a5f43f7ba8 (patch)
tree9a526823ddba8dd8cd07bb5d918acf7c5e820db7 /include
parent0522b2869d89b095bf417c8cc6fa404842e91903 (diff)
libata-core/sff: Fix multiple assumptions about DMA
The ata IRQ ack functions are only used when debugging. Unfortunately almost every controller that calls them can cause crashes in some configurations as there are missing checks for bmdma presence. In addition ata_port_start insists of installing DMA buffers and pad buffers for controllers regardless. The SFF controllers actually need to make that decision dynamically at controller setup time and all need the same helper - so we add ata_sff_port_start. Future patches will switch the SFF drivers to use this. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/libata.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h
index a6a3113120a4..745c4f9b4caa 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -753,6 +753,7 @@ extern u8 ata_check_status(struct ata_port *ap);
753extern u8 ata_altstatus(struct ata_port *ap); 753extern u8 ata_altstatus(struct ata_port *ap);
754extern void ata_exec_command(struct ata_port *ap, const struct ata_taskfile *tf); 754extern void ata_exec_command(struct ata_port *ap, const struct ata_taskfile *tf);
755extern int ata_port_start (struct ata_port *ap); 755extern int ata_port_start (struct ata_port *ap);
756extern int ata_sff_port_start (struct ata_port *ap);
756extern irqreturn_t ata_interrupt (int irq, void *dev_instance); 757extern irqreturn_t ata_interrupt (int irq, void *dev_instance);
757extern void ata_data_xfer(struct ata_device *adev, unsigned char *buf, 758extern void ata_data_xfer(struct ata_device *adev, unsigned char *buf,
758 unsigned int buflen, int write_data); 759 unsigned int buflen, int write_data);