Skip to content

Commit

Permalink
ARM: support generic per-device coherent dma mem
Browse files Browse the repository at this point in the history
Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Dmitry Baryshkov authored and Ingo Molnar committed Jul 18, 2008
1 parent 538c29d commit 1fe5326
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 0 deletions.
1 change: 1 addition & 0 deletions arch/arm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ config ARM
select HAVE_KRETPROBES if (HAVE_KPROBES)
select HAVE_FTRACE if (!XIP_KERNEL)
select HAVE_DYNAMIC_FTRACE if (HAVE_FTRACE)
select HAVE_GENERIC_DMA_COHERENT
help
The ARM series is a line of low-power-consumption RISC chip designs
licensed by ARM Ltd and targeted at embedded applications and
Expand Down
8 changes: 8 additions & 0 deletions arch/arm/mm/consistent.c
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,11 @@ __dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp,
void *
dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp)
{
void *memory;

if (dma_alloc_from_coherent(dev, size, handle, &memory))
return memory;

if (arch_is_coherent()) {
void *virt;

Expand Down Expand Up @@ -362,6 +367,9 @@ void dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, dma_addr

WARN_ON(irqs_disabled());

if (dma_release_from_coherent(dev, get_order(size), cpu_addr))
return;

if (arch_is_coherent()) {
kfree(cpu_addr);
return;
Expand Down
2 changes: 2 additions & 0 deletions include/asm-arm/dma-mapping.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

#include <linux/scatterlist.h>

#include <asm-generic/dma-coherent.h>

/*
* DMA-consistent mapping functions. These allocate/free a region of
* uncached, unwrite-buffered mapped memory space for use with DMA
Expand Down

0 comments on commit 1fe5326

Please sign in to comment.