aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/sata_vsc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/sata_vsc.c')
-rw-r--r--drivers/ata/sata_vsc.c43
1 files changed, 24 insertions, 19 deletions
diff --git a/drivers/ata/sata_vsc.c b/drivers/ata/sata_vsc.c
index e654b990b905..0fa1b89f76d5 100644
--- a/drivers/ata/sata_vsc.c
+++ b/drivers/ata/sata_vsc.c
@@ -149,21 +149,26 @@ static void vsc_sata_tf_load(struct ata_port *ap, const struct ata_taskfile *tf)
149 vsc_intr_mask_update(ap, tf->ctl & ATA_NIEN); 149 vsc_intr_mask_update(ap, tf->ctl & ATA_NIEN);
150 } 150 }
151 if (is_addr && (tf->flags & ATA_TFLAG_LBA48)) { 151 if (is_addr && (tf->flags & ATA_TFLAG_LBA48)) {
152 writew(tf->feature | (((u16)tf->hob_feature) << 8), ioaddr->feature_addr); 152 writew(tf->feature | (((u16)tf->hob_feature) << 8),
153 writew(tf->nsect | (((u16)tf->hob_nsect) << 8), ioaddr->nsect_addr); 153 (void __iomem *) ioaddr->feature_addr);
154 writew(tf->lbal | (((u16)tf->hob_lbal) << 8), ioaddr->lbal_addr); 154 writew(tf->nsect | (((u16)tf->hob_nsect) << 8),
155 writew(tf->lbam | (((u16)tf->hob_lbam) << 8), ioaddr->lbam_addr); 155 (void __iomem *) ioaddr->nsect_addr);
156 writew(tf->lbah | (((u16)tf->hob_lbah) << 8), ioaddr->lbah_addr); 156 writew(tf->lbal | (((u16)tf->hob_lbal) << 8),
157 (void __iomem *) ioaddr->lbal_addr);
158 writew(tf->lbam | (((u16)tf->hob_lbam) << 8),
159 (void __iomem *) ioaddr->lbam_addr);
160 writew(tf->lbah | (((u16)tf->hob_lbah) << 8),
161 (void __iomem *) ioaddr->lbah_addr);
157 } else if (is_addr) { 162 } else if (is_addr) {
158 writew(tf->feature, ioaddr->feature_addr); 163 writew(tf->feature, (void __iomem *) ioaddr->feature_addr);
159 writew(tf->nsect, ioaddr->nsect_addr); 164 writew(tf->nsect, (void __iomem *) ioaddr->nsect_addr);
160 writew(tf->lbal, ioaddr->lbal_addr); 165 writew(tf->lbal, (void __iomem *) ioaddr->lbal_addr);
161 writew(tf->lbam, ioaddr->lbam_addr); 166 writew(tf->lbam, (void __iomem *) ioaddr->lbam_addr);
162 writew(tf->lbah, ioaddr->lbah_addr); 167 writew(tf->lbah, (void __iomem *) ioaddr->lbah_addr);
163 } 168 }
164 169
165 if (tf->flags & ATA_TFLAG_DEVICE) 170 if (tf->flags & ATA_TFLAG_DEVICE)
166 writeb(tf->device, ioaddr->device_addr); 171 writeb(tf->device, (void __iomem *) ioaddr->device_addr);
167 172
168 ata_wait_idle(ap); 173 ata_wait_idle(ap);
169} 174}
@@ -175,12 +180,12 @@ static void vsc_sata_tf_read(struct ata_port *ap, struct ata_taskfile *tf)
175 u16 nsect, lbal, lbam, lbah, feature; 180 u16 nsect, lbal, lbam, lbah, feature;
176 181
177 tf->command = ata_check_status(ap); 182 tf->command = ata_check_status(ap);
178 tf->device = readw(ioaddr->device_addr); 183 tf->device = readw((void __iomem *) ioaddr->device_addr);
179 feature = readw(ioaddr->error_addr); 184 feature = readw((void __iomem *) ioaddr->error_addr);
180 nsect = readw(ioaddr->nsect_addr); 185 nsect = readw((void __iomem *) ioaddr->nsect_addr);
181 lbal = readw(ioaddr->lbal_addr); 186 lbal = readw((void __iomem *) ioaddr->lbal_addr);
182 lbam = readw(ioaddr->lbam_addr); 187 lbam = readw((void __iomem *) ioaddr->lbam_addr);
183 lbah = readw(ioaddr->lbah_addr); 188 lbah = readw((void __iomem *) ioaddr->lbah_addr);
184 189
185 tf->feature = feature; 190 tf->feature = feature;
186 tf->nsect = nsect; 191 tf->nsect = nsect;
@@ -327,8 +332,8 @@ static void __devinit vsc_sata_setup_port(struct ata_ioports *port, unsigned lon
327 port->ctl_addr = base + VSC_SATA_TF_CTL_OFFSET; 332 port->ctl_addr = base + VSC_SATA_TF_CTL_OFFSET;
328 port->bmdma_addr = base + VSC_SATA_DMA_CMD_OFFSET; 333 port->bmdma_addr = base + VSC_SATA_DMA_CMD_OFFSET;
329 port->scr_addr = base + VSC_SATA_SCR_STATUS_OFFSET; 334 port->scr_addr = base + VSC_SATA_SCR_STATUS_OFFSET;
330 writel(0, base + VSC_SATA_UP_DESCRIPTOR_OFFSET); 335 writel(0, (void __iomem *) base + VSC_SATA_UP_DESCRIPTOR_OFFSET);
331 writel(0, base + VSC_SATA_UP_DATA_BUFFER_OFFSET); 336 writel(0, (void __iomem *) base + VSC_SATA_UP_DATA_BUFFER_OFFSET);
332} 337}
333 338
334 339