On 1/12/07, Alan <alan@xxxxxxxxxxxxxxxxxxx> wrote:
On Fri, 12 Jan 2007 05:28:07 +0100 Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx> wrote: > [PATCH] ide: use PIO/MMIO operations directly where possible > > This results in smaller/faster/simpler code and allows future optimizations. > Also remove no longer needed ide[_mm]_{inl,outl}() and ide_hwif_t.{INL,OUTL}. > > Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx> > --- a.orig/drivers/ide/ide-dma.c > +++ a/drivers/ide/ide-dma.c > @@ -565,7 +565,10 @@ int ide_dma_setup(ide_drive_t *drive) > } > > /* PRD table */ > - hwif->OUTL(hwif->dmatable_dma, hwif->dma_prdtable); > + if (hwif->mmio == 2) > + writel(hwif->dmatable_dma, (void __iomem *)hwif->dma_prdtable); > + else > + outl(hwif->dmatable_dma, hwif->dma_prdtable); This should simply be if (hwif->mmio) mmio = 1 is still used by some amiga and other oddments and indicates mmio in old form. I don't think this causes a bug as they don't use the DMA layer, but its a bug waiting to happen if the mmio==1 case doesn't get handled correctly or BUG()
mmio = 1 isn't used in the current IDE code and we have BUG_ON() for it in ide.c:ide_hwif_request_regions() so the above change is safe. Anyway thanks for bringing mmio = 1 issue - it can be converted to flag now (will let us avoid similar confusions in the future). Bart - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html