Message ID | cc56f074b8da7e03a187b2363b1f2c2955d62c1c.1532382222.git.robin.murphy@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Stop losing firmware-set DMA masks | expand |
On Mon, Jul 23, 2018 at 11:16:09PM +0100, Robin Murphy wrote: > 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. Looks good, Reviewed-by: Christoph Hellwig <hch@lst.de>
diff --git a/drivers/of/device.c b/drivers/of/device.c index 33d85511d790..0d39633e8545 100644 --- a/drivers/of/device.c +++ b/drivers/of/device.c @@ -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;
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. CC: Rob Herring <robh+dt@kernel.org> CC: Frank Rowand <frowand.list@gmail.com> Signed-off-by: Robin Murphy <robin.murphy@arm.com> --- drivers/of/device.c | 1 + 1 file changed, 1 insertion(+)