diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/ethosu_device.c | 11 |
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); |