of: Set the DMA mask to 64 bits when dma_addr_t is 64-bits
Currently, of_platform_device_create_pdata always sets the
coherent DMA mask to 32 bits. On ARM systems without CONFIG_ZONE_DMA,
arm_dma_limit gets set to ~0 or 0xFFFFFFFFFFFFFFFF on LPAE based
systems. Since arm_dma_limit represents the smallest dma_mask
on the system, the default of 32 bits prevents any dma_coherent
allocation from succeeding unless clients manually set the
dma mask first. Rather than make every client on an LPAE system set
the mask manually, account for the size of dma_addr_t when setting
the coherent mask.
Change-Id: Iac6a6841b8880d4d4ee61016765b5bd6e9963afb
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
1 file changed