summaryrefslogtreecommitdiffstats
path: root/drivers/ata
diff options
context:
space:
mode:
authorPhil Sutter <n0-1@freewrt.org>2009-01-27 14:35:52 +0100
committerJeff Garzik <jgarzik@redhat.com>2009-03-24 22:02:39 -0400
commit180bd147f18316d92bd5f59aebc9932cabc03edd (patch)
treed22e40de0ad6b81d203d97218a11775ad1cab4cd /drivers/ata
parentbff9ad3c4c8fff340854d3912196ed470f94602c (diff)
downloadlinux-180bd147f18316d92bd5f59aebc9932cabc03edd.tar.gz
linux-180bd147f18316d92bd5f59aebc9932cabc03edd.tar.bz2
linux-180bd147f18316d92bd5f59aebc9932cabc03edd.zip
pata-rb532-cf: use ata_sff_data_xfer32()
The biggest difference between rb532_pata_data_xfer() and ata_sff_data_xfer32() is the call to ata_sff_pause() at the end of rb532_pata_data_xfer() which I suppose to be unnecessary since it works without. I've also tested using ata_sff_data_xfer() as replacement, but since we know that the driver supports 32bit IO, using the optimised version should be safe. Signed-off-by: Phil Sutter <n0-1@freewrt.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata')
-rw-r--r--drivers/ata/pata_rb532_cf.c21
1 files changed, 1 insertions, 20 deletions
diff --git a/drivers/ata/pata_rb532_cf.c b/drivers/ata/pata_rb532_cf.c
index 9d61ce51e4e0..9fb91e4dd887 100644
--- a/drivers/ata/pata_rb532_cf.c
+++ b/drivers/ata/pata_rb532_cf.c
@@ -54,25 +54,6 @@ struct rb532_cf_info {
/* ------------------------------------------------------------------------ */
-static unsigned int rb532_pata_data_xfer(struct ata_device *adev, unsigned char *buf,
- unsigned int buflen, int write_data)
-{
- struct ata_port *ap = adev->link->ap;
- void __iomem *ioaddr = ap->ioaddr.data_addr;
- int retlen = buflen;
-
- if (write_data) {
- for (; buflen > 0; buflen--, buf++)
- writeb(*buf, ioaddr);
- } else {
- for (; buflen > 0; buflen--, buf++)
- *buf = readb(ioaddr);
- }
-
- ata_sff_pause(ap);
- return retlen;
-}
-
static void rb532_pata_freeze(struct ata_port *ap)
{
struct rb532_cf_info *info = ap->host->private_data;
@@ -105,7 +86,7 @@ static irqreturn_t rb532_pata_irq_handler(int irq, void *dev_instance)
static struct ata_port_operations rb532_pata_port_ops = {
.inherits = &ata_sff_port_ops,
- .sff_data_xfer = rb532_pata_data_xfer,
+ .sff_data_xfer = ata_sff_data_xfer32,
.freeze = rb532_pata_freeze,
.thaw = rb532_pata_thaw,
};