diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-10-18 18:30:08 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-10-18 18:30:08 -0400 |
commit | df95f5ab5834a543ddef0e85785e17347cf4c89d (patch) | |
tree | dc3b7a742c468ffc18cc58ad051f214cc4c579dd /drivers/ide | |
parent | 31e8a465a265886a207427e5652aafb9a591c3fa (diff) |
aec62xx: remove ->init_setup
Merge init_setup_{aec62xx,aec6x80}() into aec62xx_init_one().
While at it:
* Use id->driver_data instead of dev->device.
* Use ATA_UDMA6 define.
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide')
-rw-r--r-- | drivers/ide/pci/aec62xx.c | 39 |
1 files changed, 14 insertions, 25 deletions
diff --git a/drivers/ide/pci/aec62xx.c b/drivers/ide/pci/aec62xx.c index 4906f00cc0c4..3f03acea5987 100644 --- a/drivers/ide/pci/aec62xx.c +++ b/drivers/ide/pci/aec62xx.c | |||
@@ -217,28 +217,9 @@ static void __devinit init_hwif_aec62xx(ide_hwif_t *hwif) | |||
217 | } | 217 | } |
218 | } | 218 | } |
219 | 219 | ||
220 | static int __devinit init_setup_aec62xx(struct pci_dev *dev, ide_pci_device_t *d) | ||
221 | { | ||
222 | return ide_setup_pci_device(dev, d); | ||
223 | } | ||
224 | |||
225 | static int __devinit init_setup_aec6x80(struct pci_dev *dev, ide_pci_device_t *d) | ||
226 | { | ||
227 | unsigned long dma_base = pci_resource_start(dev, 4); | ||
228 | |||
229 | if (inb(dma_base + 2) & 0x10) { | ||
230 | d->name = (dev->device == PCI_DEVICE_ID_ARTOP_ATP865R) ? | ||
231 | "AEC6880R" : "AEC6880"; | ||
232 | d->udma_mask = 0x7f; /* udma0-6 */ | ||
233 | } | ||
234 | |||
235 | return ide_setup_pci_device(dev, d); | ||
236 | } | ||
237 | |||
238 | static ide_pci_device_t aec62xx_chipsets[] __devinitdata = { | 220 | static ide_pci_device_t aec62xx_chipsets[] __devinitdata = { |
239 | { /* 0 */ | 221 | { /* 0 */ |
240 | .name = "AEC6210", | 222 | .name = "AEC6210", |
241 | .init_setup = init_setup_aec62xx, | ||
242 | .init_chipset = init_chipset_aec62xx, | 223 | .init_chipset = init_chipset_aec62xx, |
243 | .init_hwif = init_hwif_aec62xx, | 224 | .init_hwif = init_hwif_aec62xx, |
244 | .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, | 225 | .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, |
@@ -248,7 +229,6 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = { | |||
248 | .udma_mask = ATA_UDMA2, | 229 | .udma_mask = ATA_UDMA2, |
249 | },{ /* 1 */ | 230 | },{ /* 1 */ |
250 | .name = "AEC6260", | 231 | .name = "AEC6260", |
251 | .init_setup = init_setup_aec62xx, | ||
252 | .init_chipset = init_chipset_aec62xx, | 232 | .init_chipset = init_chipset_aec62xx, |
253 | .init_hwif = init_hwif_aec62xx, | 233 | .init_hwif = init_hwif_aec62xx, |
254 | .host_flags = IDE_HFLAG_NO_ATAPI_DMA | IDE_HFLAG_NO_AUTODMA | | 234 | .host_flags = IDE_HFLAG_NO_ATAPI_DMA | IDE_HFLAG_NO_AUTODMA | |
@@ -258,7 +238,6 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = { | |||
258 | .udma_mask = ATA_UDMA4, | 238 | .udma_mask = ATA_UDMA4, |
259 | },{ /* 2 */ | 239 | },{ /* 2 */ |
260 | .name = "AEC6260R", | 240 | .name = "AEC6260R", |
261 | .init_setup = init_setup_aec62xx, | ||
262 | .init_chipset = init_chipset_aec62xx, | 241 | .init_chipset = init_chipset_aec62xx, |
263 | .init_hwif = init_hwif_aec62xx, | 242 | .init_hwif = init_hwif_aec62xx, |
264 | .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, | 243 | .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, |
@@ -268,7 +247,6 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = { | |||
268 | .udma_mask = ATA_UDMA4, | 247 | .udma_mask = ATA_UDMA4, |
269 | },{ /* 3 */ | 248 | },{ /* 3 */ |
270 | .name = "AEC6280", | 249 | .name = "AEC6280", |
271 | .init_setup = init_setup_aec6x80, | ||
272 | .init_chipset = init_chipset_aec62xx, | 250 | .init_chipset = init_chipset_aec62xx, |
273 | .init_hwif = init_hwif_aec62xx, | 251 | .init_hwif = init_hwif_aec62xx, |
274 | .host_flags = IDE_HFLAG_NO_ATAPI_DMA | IDE_HFLAG_OFF_BOARD, | 252 | .host_flags = IDE_HFLAG_NO_ATAPI_DMA | IDE_HFLAG_OFF_BOARD, |
@@ -277,7 +255,6 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = { | |||
277 | .udma_mask = ATA_UDMA5, | 255 | .udma_mask = ATA_UDMA5, |
278 | },{ /* 4 */ | 256 | },{ /* 4 */ |
279 | .name = "AEC6280R", | 257 | .name = "AEC6280R", |
280 | .init_setup = init_setup_aec6x80, | ||
281 | .init_chipset = init_chipset_aec62xx, | 258 | .init_chipset = init_chipset_aec62xx, |
282 | .init_hwif = init_hwif_aec62xx, | 259 | .init_hwif = init_hwif_aec62xx, |
283 | .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, | 260 | .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, |
@@ -302,9 +279,21 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = { | |||
302 | 279 | ||
303 | static int __devinit aec62xx_init_one(struct pci_dev *dev, const struct pci_device_id *id) | 280 | static int __devinit aec62xx_init_one(struct pci_dev *dev, const struct pci_device_id *id) |
304 | { | 281 | { |
305 | ide_pci_device_t d = aec62xx_chipsets[id->driver_data]; | 282 | ide_pci_device_t d; |
283 | u8 idx = id->driver_data; | ||
284 | |||
285 | d = aec62xx_chipsets[idx]; | ||
286 | |||
287 | if (idx == 3 || idx == 4) { | ||
288 | unsigned long dma_base = pci_resource_start(dev, 4); | ||
289 | |||
290 | if (inb(dma_base + 2) & 0x10) { | ||
291 | d.name = (idx == 4) ? "AEC6880R" : "AEC6880"; | ||
292 | d.udma_mask = ATA_UDMA6; | ||
293 | } | ||
294 | } | ||
306 | 295 | ||
307 | return d.init_setup(dev, &d); | 296 | return ide_setup_pci_device(dev, &d); |
308 | } | 297 | } |
309 | 298 | ||
310 | static const struct pci_device_id aec62xx_pci_tbl[] = { | 299 | static const struct pci_device_id aec62xx_pci_tbl[] = { |