OF: update coherent_dma_mask
Subsystems (2)
PATCH 1/1 OF: update coherent_dma_mask
This patch is tested in ARM:exynos5250 with LPAE enabled. The coherent_dma_mask needs to be defined to DMA_BIT_MASK(64) as dma-mapping API's check it against 64-bit mask.
--- drivers/of/platform.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/of/platform.c +1 -1
@@ -214,7 +214,7 @@ struct platform_device *of_platform_device_create_pdata(#if defined(CONFIG_MICROBLAZE ) dev->archdata.dma_mask =0xffffffffUL ;#endif - dev->dev.coherent_dma_mask =DMA_BIT_MASK (32 ); + dev->dev.coherent_dma_mask =DMA_BIT_MASK (64 ); dev->dev.bus = &platform_bus_type; dev->dev.platform_data = platform_data;
Signature · 1 line
1.7.5.4
PATCH 1/1 OF: update coherent_dma_mask
Quoted 14 lines · Subash Patel
This patch is tested in ARM:exynos5250 with LPAE enabled. The
coherent_dma_maskneeds to be defined toDMA_BIT_MASK(64)as dma-mapping API's check it against 64-bit mask.Signed-off-by Subash Patel <[email protected]>--- drivers/of/platform.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)drivers/of/platform.c +0
-0
drivers/of/platform.c struct platform_device *of_platform_device_create_pdata( · line 219
Quoted 7 lines
drivers/of/platform.c +1
-1@@ -214,7 +214,7 @@ struct platform_device *of_platform_device_create_pdata(#if defined(CONFIG_MICROBLAZE ) dev->archdata.dma_mask =0xffffffffUL ;#endif - dev->dev.coherent_dma_mask =DMA_BIT_MASK (32 ); + dev->dev.coherent_dma_mask =DMA_BIT_MASK (64 ); dev->dev.bus = &platform_bus_type; dev->dev.platform_data = platform_data;
This is assuming all masters support 64-bit addressing which is probably not universally valid. This really needs to be determined from the DT and there's been recent patches to do this[1] although they need more work.
[1] - https://lkml.org/lkml/2012/12/4/54
Rob