diff options
Diffstat (limited to 'drivers/ide/setup-pci.c')
-rw-r--r-- | drivers/ide/setup-pci.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c index 05db429a7da8..acef85d1c581 100644 --- a/drivers/ide/setup-pci.c +++ b/drivers/ide/setup-pci.c | |||
@@ -558,10 +558,15 @@ void ide_pci_setup_ports(struct pci_dev *dev, const struct ide_port_info *d, int | |||
558 | hwif->drives[1].unmask = 1; | 558 | hwif->drives[1].unmask = 1; |
559 | } | 559 | } |
560 | 560 | ||
561 | if (hwif->dma_base) { | 561 | hwif->swdma_mask = d->swdma_mask; |
562 | hwif->swdma_mask = d->swdma_mask; | 562 | hwif->mwdma_mask = d->mwdma_mask; |
563 | hwif->mwdma_mask = d->mwdma_mask; | 563 | hwif->ultra_mask = d->udma_mask; |
564 | hwif->ultra_mask = d->udma_mask; | 564 | |
565 | if ((d->host_flags && IDE_HFLAG_NO_DMA) == 0 && | ||
566 | hwif->dma_base == 0) { | ||
567 | hwif->swdma_mask = 0; | ||
568 | hwif->mwdma_mask = 0; | ||
569 | hwif->ultra_mask = 0; | ||
565 | } | 570 | } |
566 | 571 | ||
567 | hwif->drives[0].autotune = 1; | 572 | hwif->drives[0].autotune = 1; |