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