alim15x3: skip DMA initialization completely on revs < 0x20
PATCH 3/7 alim15x3: skip DMA initialization completely on revs < 0x20
Skip DMA initialization completely on revs < 0x20 by setting IDE_HFLAG_NO_DMA host flag and resetting DMA host masks in alim15x3_init_one() (currently ide_hwif_setup_dma() will try to obtain DMA base and setup PCI bus-mastering but init_dma_ali15x3() will fail).
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
--- drivers/ide/pci/alim15x3.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
drivers/ide/pci/alim15x3.c +4 -2
@@ -732,8 +732,6 @@ static void __devinit init_hwif_ali15x3static void __devinit init_dma_ali15x3 (ide_hwif_t *hwif,unsigned long dmabase) { -if (m5229_revision <0x20 ) -return ;if (!hwif->channel)outb (inb (dmabase +2 ) &0x60 , dmabase +2 );ide_setup_dma (hwif, dmabase);
@@ -794,6 +792,10 @@ static int __devinit alim15x3_init_one(s d.udma_mask =ATA_UDMA5 ; else d.udma_mask = ATA_UDMA6; + }else { + d.host_flags |=IDE_HFLAG_NO_DMA ; + + d.mwdma_mask = d.swdma_mask =0 ; }if (idx ==0 )