ARM: 7795/1: mm: dma-mapping: Add dma_max_pfn(dev) helper function
authorSantosh Shilimkar <santosh.shilimkar@ti.com>
Mon, 29 Jul 2013 13:18:48 +0000 (14:18 +0100)
committerlintao <lintao@rock-chips.com>
Fri, 7 Mar 2014 12:07:29 +0000 (20:07 +0800)
commit3cb50076ba3fcd25754d9efe583a918d3b365473
tree47652fe7714e4dd8d65d04afa14b4c59aef11af1
parent07f22c129fda7235ab79f5e5dc7b8c113feccfc2
ARM: 7795/1: mm: dma-mapping: Add dma_max_pfn(dev) helper function

Most of the kernel assumes that PFN0 is the start of the physical
memory (RAM). This assumptions is not true on most of the ARM SOCs
and hence and if one try to update the ARM port to follow the assumptions,
we end of breaking the dma bounce limit for few block layer drivers.
One such example is trying to unify the meaning of max*_pfn on ARM
as the bootmem layer expects, breaks few block layer driver dma
bounce limit.

To fix this problem, we introduce dma_max_pfn(dev) generic helper with
a possibility of override from the architecture code. The helper converts
a DMA bitmask of bits to a block PFN number. In all the generic cases,
it is just  "dev->dma_mask >> PAGE_SHIFT" and hence default behavior
is maintained as is.

Subsequent patches will make use of the helper. No functional change.

Cc: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
include/linux/dma-mapping.h