powerpc: Merge 32 and 64-bit dma code
authorBecky Bruce <becky.bruce@freescale.com>
Fri, 12 Sep 2008 10:34:46 +0000 (10:34 +0000)
committerKumar Gala <galak@kernel.crashing.org>
Wed, 24 Sep 2008 21:26:45 +0000 (16:26 -0500)
commit4fc665b88a79a45bae8bbf3a05563c27c7337c3d
treeca668c2fab7c3a4d62b92174f4a5fcae2625cdd1
parent8fae0353247530d2124b2419052fa6120462fa99
powerpc: Merge 32 and 64-bit dma code

We essentially adopt the 64-bit dma code, with some changes to support
32-bit systems, including HIGHMEM.  dma functions on 32-bit are now
invoked via accessor functions which call the correct op for a device based
on archdata dma_ops.  If there is no archdata dma_ops, this defaults
to dma_direct_ops.

In addition, the dma_map/unmap_page functions are added to dma_ops
because we can't just fall back on map/unmap_single when HIGHMEM is
enabled. In the case of dma_direct_*, we stop using map/unmap_single
and just use the page version - this saves a lot of ugly
ifdeffing.  We leave map/unmap_single in the dma_ops definition,
though, because they are needed by the iommu code, which does not
implement map/unmap_page.  Ideally, going forward, we will completely
eliminate map/unmap_single and just have map/unmap_page, if it's
workable for 64-bit.

Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
arch/powerpc/include/asm/dma-mapping.h
arch/powerpc/include/asm/machdep.h
arch/powerpc/include/asm/pci.h
arch/powerpc/kernel/Makefile
arch/powerpc/kernel/dma.c
arch/powerpc/kernel/pci-common.c
arch/powerpc/kernel/pci_32.c
arch/powerpc/kernel/pci_64.c