[PATCHv22 14/16] X86: integrate CMA with DMA-mapping subsystem
From: m.szyprowski@samsung.com (Marek Szyprowski)
Date: 2012-02-22 16:36:33
Also in:
linux-media, linux-mm, lkml
Hi Andrew, On Wednesday, February 22, 2012 1:18 AM Andrew Morton wrote:
quoted
This patch adds support for CMA to dma-mapping subsystem for x86 architecture that uses common pci-dma/pci-nommu implementation. This allows to test CMA on KVM/QEMU and a lot of common x86 boxes. ...--- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig@@ -31,6 +31,7 @@ config X86 select ARCH_WANT_OPTIONAL_GPIOLIB select ARCH_WANT_FRAME_POINTERS select HAVE_DMA_ATTRS + select HAVE_DMA_CONTIGUOUS if !SWIOTLB select HAVE_KRETPROBES select HAVE_OPTPROBES select HAVE_FTRACE_MCOUNT_RECORDI don't think it's compilable at all for x86_64, because that platform selects SWIOTLB.
Right, x86 support is very basic, mainly for being able to test it on standard configuration with QEmu.
After a while I got it to compile for i386. arm didn't go so well, partly because arm allmodconfig is presently horked (something to do with Kconfig not setting PHYS_OFFSET) and partly because arm defconfig doesn't permit CMA to be set. Got bored, gave up.
I think that all*config are broken on ARM. To enable CMA compilation, one need to select a subplatform based on ARMv6+ - for example one can start from arch/arm/configs/exynos4_defconfig and then use oldnoconfig.
The patchset collides pretty seriously with pending dma api changes and pending arm changes in linux-next, so I didn't apply anything. This will all need to be looked at, please. I'll make do with reading the patches for now ;)
I've rebased the CMA patchset on top of next-20120222 kernel tree and I will send them soon as v23. I hope this will help getting them merged to your tree. If I should select different base for the patches, just let me know. Best regards -- Marek Szyprowski Samsung Poland R&D Center