of: set dma_mask to point to coherent_dma_mask
authorRob Herring <rob.herring@calxeda.com>
Wed, 30 Oct 2013 04:36:46 +0000 (23:36 -0500)
committerRob Herring <rob.herring@calxeda.com>
Sun, 3 Nov 2013 20:16:49 +0000 (14:16 -0600)
Platform devices created by DT code don't initialize dma_mask pointer to
anything. Set it to coherent_dma_mask by default if the architecture
code has not set it.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
drivers/of/platform.c

index 9b439ac63d8e73eef85aa490d5cab6ec825120b7..c005495fa3821bd0f43c15b942bda216738054e4 100644 (file)
@@ -216,6 +216,8 @@ static struct platform_device *of_platform_device_create_pdata(
        dev->archdata.dma_mask = 0xffffffffUL;
 #endif
        dev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
+       if (!dev->dev.dma_mask)
+               dev->dev.dma_mask = &dev->dev.coherent_dma_mask;
        dev->dev.bus = &platform_bus_type;
        dev->dev.platform_data = platform_data;