[PATCH v3 2/2] gpu: host1x: Set the DMA mask for host1x devices

From: Alexandre Courbot
Date: Thu Feb 25 2016 - 05:10:05 EST


The default DMA mask covers a 32 bits address range, but devices can
address more than that. Set the DMA mask to the actual addressable range
to avoid the use of unneeded bounce buffers.

Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
---
Changes since v1:
- set the mask at the bus level so of_dma_configure() does the right thing

drivers/gpu/host1x/bus.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/host1x/bus.c b/drivers/gpu/host1x/bus.c
index c27858ae0552..e04c7114f976 100644
--- a/drivers/gpu/host1x/bus.c
+++ b/drivers/gpu/host1x/bus.c
@@ -19,6 +19,7 @@
#include <linux/of.h>
#include <linux/slab.h>
#include <linux/of_device.h>
+#include <linux/dma-mapping.h>

#include "bus.h"
#include "dev.h"
@@ -394,7 +395,7 @@ static int host1x_device_add(struct host1x *host1x,
INIT_LIST_HEAD(&device->list);
device->driver = driver;

- device->dev.coherent_dma_mask = host1x->dev->coherent_dma_mask;
+ device->dev.coherent_dma_mask = DMA_BIT_MASK(34);
device->dev.dma_mask = &device->dev.coherent_dma_mask;
dev_set_name(&device->dev, "%s", driver->driver.name);
of_dma_configure(&device->dev, host1x->dev->of_node);
--
2.7.1