On Thursday 27 February 2014 16:17:46 Santosh Shilimkar wrote:
From: Grygorii Strashko <grygorii.strashko@ti.com>
In most of cases DMA addresses can be performed using offset value of
Bus address space relatively to physical address space as following:
PFN->DMA:
__pfn_to_phys(pfn + [-]dma_pfn_offset)
DMA->PFN:
__phys_to_pfn(dma_addr) + [-]dma_pfn_offset
This patch introduces new field dma_pfn_offset in ARM dev_archdata
structure which has to be filed per-device at arch init time
(simplest way is to use Platform bus notifier to handle
BUS_NOTIFY_ADD_DEVICE event) and updates DMA address translation
routines in order to accommodate bus offset value by default.
Cc: Russell King <redacted>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Olof Johansson <redacted>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Santosh Shilimkar <redacted>
This was my suggestion, and the implementation is trivial, so
Acked-by: Arnd Bergmann <arnd@arndb.de>
This should be most of what LinusW needs to generalize the
mach-integrator PCI DMA mapping.