diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-10-18 18:30:07 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-10-18 18:30:07 -0400 |
commit | 5f8b6c34854a966fe5eb7241fde0419d47d5d408 (patch) | |
tree | 052afd508d9cd314f503d938182db55355f1b392 /drivers/ide/pci/aec62xx.c | |
parent | 9adf768a398745c539623210502b521e671c59d7 (diff) |
ide: add ->mwdma_mask and ->swdma_mask to ide_pci_device_t (take 2)
* Add ->mwdma_mask and ->swdma_mask to ide_pci_device_t.
* Set ide_hwif_t DMA masks using DMA masks from ide_pci_device_t in
setup-pci.c::ide_pci_setup_ports() (iff DMA base is valid and ->init_hwif
method may still override them).
* Convert IDE PCI host drivers to use ide_pci_device_t DMA masks.
While at it:
* Use ATA_{UDMA,MWDMA,SWDMA}* defines.
* hpt34x.c: add separate ide_pci_device_t instances for HPT343 and HPT345.
* serverworks.c: fix DMA masks being set before checking DMA base.
v2:
* Add missing masks to DECLARE_GENERIC_PCI_DEV() macro.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/pci/aec62xx.c')
-rw-r--r-- | drivers/ide/pci/aec62xx.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/ide/pci/aec62xx.c b/drivers/ide/pci/aec62xx.c index 1c52cb67a267..4906f00cc0c4 100644 --- a/drivers/ide/pci/aec62xx.c +++ b/drivers/ide/pci/aec62xx.c | |||
@@ -201,9 +201,6 @@ static void __devinit init_hwif_aec62xx(ide_hwif_t *hwif) | |||
201 | if (hwif->dma_base == 0) | 201 | if (hwif->dma_base == 0) |
202 | return; | 202 | return; |
203 | 203 | ||
204 | hwif->ultra_mask = hwif->cds->udma_mask; | ||
205 | hwif->mwdma_mask = 0x07; | ||
206 | |||
207 | hwif->dma_lost_irq = &aec62xx_dma_lost_irq; | 204 | hwif->dma_lost_irq = &aec62xx_dma_lost_irq; |
208 | 205 | ||
209 | if (dev->device == PCI_DEVICE_ID_ARTOP_ATP850UF) { | 206 | if (dev->device == PCI_DEVICE_ID_ARTOP_ATP850UF) { |
@@ -247,7 +244,8 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = { | |||
247 | .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, | 244 | .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, |
248 | .host_flags = IDE_HFLAG_NO_ATAPI_DMA | IDE_HFLAG_OFF_BOARD, | 245 | .host_flags = IDE_HFLAG_NO_ATAPI_DMA | IDE_HFLAG_OFF_BOARD, |
249 | .pio_mask = ATA_PIO4, | 246 | .pio_mask = ATA_PIO4, |
250 | .udma_mask = 0x07, /* udma0-2 */ | 247 | .mwdma_mask = ATA_MWDMA2, |
248 | .udma_mask = ATA_UDMA2, | ||
251 | },{ /* 1 */ | 249 | },{ /* 1 */ |
252 | .name = "AEC6260", | 250 | .name = "AEC6260", |
253 | .init_setup = init_setup_aec62xx, | 251 | .init_setup = init_setup_aec62xx, |
@@ -256,7 +254,8 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = { | |||
256 | .host_flags = IDE_HFLAG_NO_ATAPI_DMA | IDE_HFLAG_NO_AUTODMA | | 254 | .host_flags = IDE_HFLAG_NO_ATAPI_DMA | IDE_HFLAG_NO_AUTODMA | |
257 | IDE_HFLAG_OFF_BOARD, | 255 | IDE_HFLAG_OFF_BOARD, |
258 | .pio_mask = ATA_PIO4, | 256 | .pio_mask = ATA_PIO4, |
259 | .udma_mask = 0x1f, /* udma0-4 */ | 257 | .mwdma_mask = ATA_MWDMA2, |
258 | .udma_mask = ATA_UDMA4, | ||
260 | },{ /* 2 */ | 259 | },{ /* 2 */ |
261 | .name = "AEC6260R", | 260 | .name = "AEC6260R", |
262 | .init_setup = init_setup_aec62xx, | 261 | .init_setup = init_setup_aec62xx, |
@@ -265,7 +264,8 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = { | |||
265 | .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, | 264 | .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, |
266 | .host_flags = IDE_HFLAG_NO_ATAPI_DMA, | 265 | .host_flags = IDE_HFLAG_NO_ATAPI_DMA, |
267 | .pio_mask = ATA_PIO4, | 266 | .pio_mask = ATA_PIO4, |
268 | .udma_mask = 0x1f, /* udma0-4 */ | 267 | .mwdma_mask = ATA_MWDMA2, |
268 | .udma_mask = ATA_UDMA4, | ||
269 | },{ /* 3 */ | 269 | },{ /* 3 */ |
270 | .name = "AEC6280", | 270 | .name = "AEC6280", |
271 | .init_setup = init_setup_aec6x80, | 271 | .init_setup = init_setup_aec6x80, |
@@ -273,7 +273,8 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = { | |||
273 | .init_hwif = init_hwif_aec62xx, | 273 | .init_hwif = init_hwif_aec62xx, |
274 | .host_flags = IDE_HFLAG_NO_ATAPI_DMA | IDE_HFLAG_OFF_BOARD, | 274 | .host_flags = IDE_HFLAG_NO_ATAPI_DMA | IDE_HFLAG_OFF_BOARD, |
275 | .pio_mask = ATA_PIO4, | 275 | .pio_mask = ATA_PIO4, |
276 | .udma_mask = 0x3f, /* udma0-5 */ | 276 | .mwdma_mask = ATA_MWDMA2, |
277 | .udma_mask = ATA_UDMA5, | ||
277 | },{ /* 4 */ | 278 | },{ /* 4 */ |
278 | .name = "AEC6280R", | 279 | .name = "AEC6280R", |
279 | .init_setup = init_setup_aec6x80, | 280 | .init_setup = init_setup_aec6x80, |
@@ -282,7 +283,8 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = { | |||
282 | .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, | 283 | .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, |
283 | .host_flags = IDE_HFLAG_NO_ATAPI_DMA | IDE_HFLAG_OFF_BOARD, | 284 | .host_flags = IDE_HFLAG_NO_ATAPI_DMA | IDE_HFLAG_OFF_BOARD, |
284 | .pio_mask = ATA_PIO4, | 285 | .pio_mask = ATA_PIO4, |
285 | .udma_mask = 0x3f, /* udma0-5 */ | 286 | .mwdma_mask = ATA_MWDMA2, |
287 | .udma_mask = ATA_UDMA5, | ||
286 | } | 288 | } |
287 | }; | 289 | }; |
288 | 290 | ||