diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-02-02 19:56:30 +0100 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-02-02 19:56:30 +0100 |
commit | bf77c5317168eb73894bcc9a455429c4589a179d (patch) | |
tree | 917da9a5545c3deb479f5a261df7773f725645ae /drivers/ide/setup-pci.c | |
parent | macide: remove drive->capacity64 quirk (diff) | |
download | linux-bf77c5317168eb73894bcc9a455429c4589a179d.tar.xz linux-bf77c5317168eb73894bcc9a455429c4589a179d.zip |
ide: always set DMA masks in ide_pci_setup_ports()
Always set DMA masks in ide_pci_setup_ports() to make sure that the valid
masks for a host are set.
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to '')
-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 hwif->drives[1].unmask = 1; } - if (hwif->dma_base) { - hwif->swdma_mask = d->swdma_mask; - hwif->mwdma_mask = d->mwdma_mask; - hwif->ultra_mask = d->udma_mask; + hwif->swdma_mask = d->swdma_mask; + hwif->mwdma_mask = d->mwdma_mask; + hwif->ultra_mask = d->udma_mask; + + if ((d->host_flags && IDE_HFLAG_NO_DMA) == 0 && + hwif->dma_base == 0) { + hwif->swdma_mask = 0; + hwif->mwdma_mask = 0; + hwif->ultra_mask = 0; } hwif->drives[0].autotune = 1; |