aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ata/pata_rb532_cf.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/drivers/ata/pata_rb532_cf.c b/drivers/ata/pata_rb532_cf.c
index ebfcda26d639..6fe660b27dc2 100644
--- a/drivers/ata/pata_rb532_cf.c
+++ b/drivers/ata/pata_rb532_cf.c
@@ -54,22 +54,11 @@ struct rb532_cf_info {
54 54
55/* ------------------------------------------------------------------------ */ 55/* ------------------------------------------------------------------------ */
56 56
57static inline void rb532_pata_finish_io(struct ata_port *ap)
58{
59 struct ata_host *ah = ap->host;
60 struct rb532_cf_info *info = ah->private_data;
61
62 /* FIXME: Keep previous delay. If this is merely a fence then
63 ata_sff_sync might be sufficient. */
64 ata_sff_dma_pause(ap);
65 ndelay(RB500_CF_IO_DELAY);
66}
67
68static void rb532_pata_exec_command(struct ata_port *ap, 57static void rb532_pata_exec_command(struct ata_port *ap,
69 const struct ata_taskfile *tf) 58 const struct ata_taskfile *tf)
70{ 59{
71 writeb(tf->command, ap->ioaddr.command_addr); 60 writeb(tf->command, ap->ioaddr.command_addr);
72 rb532_pata_finish_io(ap); 61 ata_sff_pause(ap);
73} 62}
74 63
75static unsigned int rb532_pata_data_xfer(struct ata_device *adev, unsigned char *buf, 64static unsigned int rb532_pata_data_xfer(struct ata_device *adev, unsigned char *buf,
@@ -87,7 +76,7 @@ static unsigned int rb532_pata_data_xfer(struct ata_device *adev, unsigned char
87 *buf = readb(ioaddr); 76 *buf = readb(ioaddr);
88 } 77 }
89 78
90 rb532_pata_finish_io(adev->link->ap); 79 ata_sff_pause(ap);
91 return retlen; 80 return retlen;
92} 81}
93 82