Skip to contentSkip to conversation

OF: update coherent_dma_mask

PATCH New Subash Patel 2 participants 2 messages Dec 10, 2012

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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
index 9bdeaf30..3c5417b 100644
@@ -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
#1 lore raw

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_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 +0 -0
index 9bdeaf30..3c5417b 100644

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