aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/ethosu_device.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/kernel/ethosu_device.c b/kernel/ethosu_device.c
index 96bd8b4..48aa0a5 100644
--- a/kernel/ethosu_device.c
+++ b/kernel/ethosu_device.c
@@ -33,6 +33,7 @@
#include "ethosu_network_info.h"
#include "uapi/ethosu.h"
+#include <linux/dma-mapping.h>
#include <linux/errno.h>
#include <linux/fs.h>
#include <linux/io.h>
@@ -48,6 +49,8 @@
#define MINOR_BASE 0 /* Minor version starts at 0 */
#define MINOR_COUNT 64 /* Allocate minor versions */
+#define DMA_ADDR_BITS 32 /* Number of address bits */
+
/****************************************************************************
* Variables
****************************************************************************/
@@ -380,6 +383,14 @@ static int ethosu_device_register(struct device *dev,
return ret;
}
+ /* Set mask for coherent DMA addressing */
+ ret = dma_set_coherent_mask(dev, DMA_BIT_MASK(DMA_ADDR_BITS));
+ if (ret) {
+ dev_err(parent, "Failed to set coherent DMA mask. ret=%d", ret);
+
+ return ret;
+ }
+
ret = device_register(dev);
if (ret) {
dev_err(parent, "Failed to register device. ret=%d", ret);