On 2016-04-18 00:00, David Miller wrote:
From: Sinan Kaya <ok...@codeaurora.org>
Date: Sat, 16 Apr 2016 18:23:32 -0400
Current code is assuming that the address returned by
dma_alloc_coherent
is a logical address. This is not true on ARM/ARM64 systems. This
patch
replaces dma_alloc_coherent with dma_map_page API. The address
returned
can later by virtually mapped from the CPU side with vmap API.
Signed-off-by: Sinan Kaya <ok...@codeaurora.org>
You can't do this.
The DMA map page API gives non-coherent mappings, and thus requires
proper flushing.
So a straight conversion like this is never legitimate.
I would agree on proper dma api usage. However, the code is already
assuming coherent architecture by mapping the cpu pages as page_kernel.
Dma_map_page returns cached buffers and you don't need cache flushes on
coherent architecture to make the data visible.