|
@@ -149,9 +149,11 @@ int of_dma_configure(struct device *dev, struct device_node *np, bool force_dma)
|
|
|
* set by the driver.
|
|
* set by the driver.
|
|
|
*/
|
|
*/
|
|
|
mask = DMA_BIT_MASK(ilog2(dma_addr + size - 1) + 1);
|
|
mask = DMA_BIT_MASK(ilog2(dma_addr + size - 1) + 1);
|
|
|
- dev->bus_dma_mask = mask;
|
|
|
|
|
dev->coherent_dma_mask &= mask;
|
|
dev->coherent_dma_mask &= mask;
|
|
|
*dev->dma_mask &= mask;
|
|
*dev->dma_mask &= mask;
|
|
|
|
|
+ /* ...but only set bus mask if we found valid dma-ranges earlier */
|
|
|
|
|
+ if (!ret)
|
|
|
|
|
+ dev->bus_dma_mask = mask;
|
|
|
|
|
|
|
|
coherent = of_dma_is_coherent(np);
|
|
coherent = of_dma_is_coherent(np);
|
|
|
dev_dbg(dev, "device is%sdma coherent\n",
|
|
dev_dbg(dev, "device is%sdma coherent\n",
|