aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/sata_svw.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/sata_svw.c')
-rw-r--r--drivers/ata/sata_svw.c41
1 files changed, 23 insertions, 18 deletions
diff --git a/drivers/ata/sata_svw.c b/drivers/ata/sata_svw.c
index d89c9590b845..46d8a94669b4 100644
--- a/drivers/ata/sata_svw.c
+++ b/drivers/ata/sata_svw.c
@@ -135,26 +135,31 @@ static void k2_sata_tf_load(struct ata_port *ap, const struct ata_taskfile *tf)
135 unsigned int is_addr = tf->flags & ATA_TFLAG_ISADDR; 135 unsigned int is_addr = tf->flags & ATA_TFLAG_ISADDR;
136 136
137 if (tf->ctl != ap->last_ctl) { 137 if (tf->ctl != ap->last_ctl) {
138 writeb(tf->ctl, ioaddr->ctl_addr); 138 writeb(tf->ctl, (void __iomem *) ioaddr->ctl_addr);
139 ap->last_ctl = tf->ctl; 139 ap->last_ctl = tf->ctl;
140 ata_wait_idle(ap); 140 ata_wait_idle(ap);
141 } 141 }
142 if (is_addr && (tf->flags & ATA_TFLAG_LBA48)) { 142 if (is_addr && (tf->flags & ATA_TFLAG_LBA48)) {
143 writew(tf->feature | (((u16)tf->hob_feature) << 8), ioaddr->feature_addr); 143 writew(tf->feature | (((u16)tf->hob_feature) << 8),
144 writew(tf->nsect | (((u16)tf->hob_nsect) << 8), ioaddr->nsect_addr); 144 (void __iomem *) ioaddr->feature_addr);
145 writew(tf->lbal | (((u16)tf->hob_lbal) << 8), ioaddr->lbal_addr); 145 writew(tf->nsect | (((u16)tf->hob_nsect) << 8),
146 writew(tf->lbam | (((u16)tf->hob_lbam) << 8), ioaddr->lbam_addr); 146 (void __iomem *) ioaddr->nsect_addr);
147 writew(tf->lbah | (((u16)tf->hob_lbah) << 8), ioaddr->lbah_addr); 147 writew(tf->lbal | (((u16)tf->hob_lbal) << 8),
148 (void __iomem *) ioaddr->lbal_addr);
149 writew(tf->lbam | (((u16)tf->hob_lbam) << 8),
150 (void __iomem *) ioaddr->lbam_addr);
151 writew(tf->lbah | (((u16)tf->hob_lbah) << 8),
152 (void __iomem *) ioaddr->lbah_addr);
148 } else if (is_addr) { 153 } else if (is_addr) {
149 writew(tf->feature, ioaddr->feature_addr); 154 writew(tf->feature, (void __iomem *) ioaddr->feature_addr);
150 writew(tf->nsect, ioaddr->nsect_addr); 155 writew(tf->nsect, (void __iomem *) ioaddr->nsect_addr);
151 writew(tf->lbal, ioaddr->lbal_addr); 156 writew(tf->lbal, (void __iomem *) ioaddr->lbal_addr);
152 writew(tf->lbam, ioaddr->lbam_addr); 157 writew(tf->lbam, (void __iomem *) ioaddr->lbam_addr);
153 writew(tf->lbah, ioaddr->lbah_addr); 158 writew(tf->lbah, (void __iomem *) ioaddr->lbah_addr);
154 } 159 }
155 160
156 if (tf->flags & ATA_TFLAG_DEVICE) 161 if (tf->flags & ATA_TFLAG_DEVICE)
157 writeb(tf->device, ioaddr->device_addr); 162 writeb(tf->device, (void __iomem *) ioaddr->device_addr);
158 163
159 ata_wait_idle(ap); 164 ata_wait_idle(ap);
160} 165}
@@ -166,12 +171,12 @@ static void k2_sata_tf_read(struct ata_port *ap, struct ata_taskfile *tf)
166 u16 nsect, lbal, lbam, lbah, feature; 171 u16 nsect, lbal, lbam, lbah, feature;
167 172
168 tf->command = k2_stat_check_status(ap); 173 tf->command = k2_stat_check_status(ap);
169 tf->device = readw(ioaddr->device_addr); 174 tf->device = readw((void __iomem *)ioaddr->device_addr);
170 feature = readw(ioaddr->error_addr); 175 feature = readw((void __iomem *)ioaddr->error_addr);
171 nsect = readw(ioaddr->nsect_addr); 176 nsect = readw((void __iomem *)ioaddr->nsect_addr);
172 lbal = readw(ioaddr->lbal_addr); 177 lbal = readw((void __iomem *)ioaddr->lbal_addr);
173 lbam = readw(ioaddr->lbam_addr); 178 lbam = readw((void __iomem *)ioaddr->lbam_addr);
174 lbah = readw(ioaddr->lbah_addr); 179 lbah = readw((void __iomem *)ioaddr->lbah_addr);
175 180
176 tf->feature = feature; 181 tf->feature = feature;
177 tf->nsect = nsect; 182 tf->nsect = nsect;