diff options
Diffstat (limited to 'drivers/ata/sata_vsc.c')
-rw-r--r-- | drivers/ata/sata_vsc.c | 43 |
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 | ||