summaryrefslogtreecommitdiff
path: root/drivers/dma/dw_dmac.c
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2013-02-14 12:41:09 +0400
committerVinod Koul <vinod.koul@intel.com>2013-02-14 13:44:36 +0400
commit877e86f28385407f05c5aa4e397d4ccb3233f01a (patch)
tree5467a9c9360f49b6ff1d2d0a0f8e8347767904f6 /drivers/dma/dw_dmac.c
parenta20702b8d7c2b54a618e203d94b37b4f1d21bbd4 (diff)
downloadlinux-877e86f28385407f05c5aa4e397d4ccb3233f01a.tar.xz
dw_dmac: apply default dma_mask if needed
In some cases we got the device without dma_mask configured. We have to apply the default value to avoid crashes during memory mapping. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'drivers/dma/dw_dmac.c')
-rw-r--r--drivers/dma/dw_dmac.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c
index 6694676c9b82..4c83f18803f1 100644
--- a/drivers/dma/dw_dmac.c
+++ b/drivers/dma/dw_dmac.c
@@ -1661,6 +1661,12 @@ static int dw_probe(struct platform_device *pdev)
if (!regs)
return -EBUSY;
+ /* Apply default dma_mask if needed */
+ if (!pdev->dev.dma_mask) {
+ pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask;
+ pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
+ }
+
dw_params = dma_read_byaddr(regs, DW_PARAMS);
autocfg = dw_params >> DW_PARAMS_EN & 0x1;