58bca4a8fa
Pull DMA mapping branch from Marek Szyprowski:
"Short summary for the whole series:
A few limitations have been identified in the current dma-mapping
design and its implementations for various architectures. There exist
more than one function for allocating and freeing the buffers:
currently these 3 are used dma_{alloc, free}_coherent,
dma_{alloc,free}_writecombine, dma_{alloc,free}_noncoherent.
For most of the systems these calls are almost equivalent and can be
interchanged. For others, especially the truly non-coherent ones
(like ARM), the difference can be easily noticed in overall driver
performance. Sadly not all architectures provide implementations for
all of them, so the drivers might need to be adapted and cannot be
easily shared between different architectures. The provided patches
unify all these functions and hide the differences under the already
existing dma attributes concept. The thread with more references is
available here:
http://www.spinics.net/lists/linux-sh/msg09777.html
These patches are also a prerequisite for unifying DMA-mapping
implementation on ARM architecture with the common one provided by
dma_map_ops structure and extending it with IOMMU support. More
information is available in the following thread:
http://thread.gmane.org/gmane.linux.kernel.cross-arch/12819
More works on dma-mapping framework are planned, especially in the
area of buffer sharing and managing the shared mappings (together with
the recently introduced dma_buf interface: commit
|
||
---|---|---|
.. | ||
asm-offsets.h | ||
atomic.h | ||
barrier.h | ||
bitops.h | ||
bitsperlong.h | ||
byteorder.h | ||
cache.h | ||
cacheflush.h | ||
checksum.h | ||
cmpxchg.h | ||
delay.h | ||
dma-mapping.h | ||
dma.h | ||
elf.h | ||
exec.h | ||
fixmap.h | ||
fpu.h | ||
futex.h | ||
hexagon_vm.h | ||
intrinsics.h | ||
io.h | ||
irq.h | ||
irqflags.h | ||
Kbuild | ||
kgdb.h | ||
linkage.h | ||
mem-layout.h | ||
mmu_context.h | ||
mmu.h | ||
module.h | ||
mutex.h | ||
page.h | ||
param.h | ||
perf_event.h | ||
pgalloc.h | ||
pgtable.h | ||
processor.h | ||
ptrace.h | ||
registers.h | ||
setup.h | ||
sigcontext.h | ||
signal.h | ||
smp.h | ||
spinlock_types.h | ||
spinlock.h | ||
string.h | ||
suspend.h | ||
swab.h | ||
switch_to.h | ||
syscall.h | ||
thread_info.h | ||
time.h | ||
timer-regs.h | ||
timex.h | ||
tlb.h | ||
tlbflush.h | ||
traps.h | ||
uaccess.h | ||
unistd.h | ||
user.h | ||
vdso.h | ||
vm_fault.h | ||
vm_mmu.h |