dma: Take into account dma_pfn_offset
authorVladimir Murzin <vladimir.murzin@arm.com>
Mon, 26 Jun 2017 09:18:55 +0000 (10:18 +0100)
committerChristoph Hellwig <hch@lst.de>
Wed, 28 Jun 2017 13:55:01 +0000 (06:55 -0700)
commit25f1e18870881f3366a5abec27b651983ce9032c
treedd890a4805e5505ad46dd430c023a9dc5606f215
parent63d36c95500400642f656ba1970980746cf437f3
dma: Take into account dma_pfn_offset

Even though dma-noop-ops assumes 1:1 memory mapping DMA memory range
can be different to RAM. For example, ARM STM32F4 MCU offers the
possibility to remap SDRAM from 0xc000_0000 to 0x0 to get CPU
performance boost, but DMA continue to see SDRAM at 0xc000_0000. This
difference in mapping is handled via device-tree "dma-range" property
which leads to dev->dma_pfn_offset is set nonzero. To handle such
cases take dma_pfn_offset into account.

Cc: Joerg Roedel <jroedel@suse.de>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Reported-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Tested-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Tested-by: Andras Szemzo <sza@esh.hu>
Tested-by: Alexandre TORGUE <alexandre.torgue@st.com>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
lib/dma-noop.c