of/device: Set bus DMA mask as appropriate
authorRobin Murphy <robin.murphy@arm.com>
Mon, 23 Jul 2018 22:16:09 +0000 (23:16 +0100)
committerChristoph Hellwig <hch@lst.de>
Fri, 27 Jul 2018 17:01:05 +0000 (19:01 +0200)
When an explicit DMA limit is described by firmware, we need to remember
it regardless of how drivers might subsequently update their devices'
masks. The new bus_dma_mask field does that.

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/of/device.c

index 33d8551..0d39633 100644 (file)
@@ -149,6 +149,7 @@ int of_dma_configure(struct device *dev, struct device_node *np, bool force_dma)
         * set by the driver.
         */
        mask = DMA_BIT_MASK(ilog2(dma_addr + size - 1) + 1);
+       dev->bus_dma_mask = mask;
        dev->coherent_dma_mask &= mask;
        *dev->dma_mask &= mask;