diff options
Diffstat (limited to 'target/linux/adm5120/files/drivers/ata/pata_rb153_cf.c')
-rw-r--r-- | target/linux/adm5120/files/drivers/ata/pata_rb153_cf.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/target/linux/adm5120/files/drivers/ata/pata_rb153_cf.c b/target/linux/adm5120/files/drivers/ata/pata_rb153_cf.c index 7dd697721..8c0a0a36c 100644 --- a/target/linux/adm5120/files/drivers/ata/pata_rb153_cf.c +++ b/target/linux/adm5120/files/drivers/ata/pata_rb153_cf.c @@ -68,20 +68,23 @@ static void rb153_pata_exec_command(struct ata_port *ap, rb153_pata_finish_io(ap); } -static void rb153_pata_data_xfer(struct ata_device *adev, unsigned char *buf, +static unsigned int rb153_pata_data_xfer(struct ata_device *adev, unsigned char *buf, unsigned int buflen, int write_data) { void __iomem *ioaddr = adev->link->ap->ioaddr.data_addr; - + unsigned int t; + + t = buflen; if (write_data) { - for (; buflen > 0; buflen--, buf++) + for (; t > 0; t--, buf++) writeb(*buf, ioaddr); } else { - for (; buflen > 0; buflen--, buf++) + for (; t > 0; t--, buf++) *buf = readb(ioaddr); } rb153_pata_finish_io(adev->link->ap); + return buflen; } static void rb153_pata_freeze(struct ata_port *ap) |