Thread (24 messages) 24 messages, 6 authors, 2012-02-22

[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_RECORD
I 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help