aboutsummaryrefslogtreecommitdiff
path: root/kernel/common
diff options
context:
space:
mode:
authorMikael Olsson <mikael.olsson@arm.com>2024-04-04 17:28:52 +0200
committerMikael Olsson <mikael.olsson@arm.com>2024-04-08 11:33:31 +0200
commitd80345fa00fea2816787ff3864318382edfd4949 (patch)
treedb4fc59187b1da9ee3c0db0410572c0e9302273f /kernel/common
parentb2f4a2cd2de6647c9e6d6d4db9108a81d4757e33 (diff)
downloadethos-u-linux-driver-stack-d80345fa00fea2816787ff3864318382edfd4949.tar.gz
Add additional error logging in NPU driver
To make it easier to distinguish where an error occurred in the NPU driver, additional logging has been added to the error cases. Change-Id: I9d744e7adf3ba3098d456d1f3c2859aa0ce66de4 Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
Diffstat (limited to 'kernel/common')
-rw-r--r--kernel/common/ethosu_buffer.c19
-rw-r--r--kernel/common/ethosu_dma_mem.c13
2 files changed, 27 insertions, 5 deletions
diff --git a/kernel/common/ethosu_buffer.c b/kernel/common/ethosu_buffer.c
index cf41b8d..519e270 100644
--- a/kernel/common/ethosu_buffer.c
+++ b/kernel/common/ethosu_buffer.c
@@ -139,12 +139,18 @@ int ethosu_buffer_create(struct device *dev,
struct ethosu_buffer *buf;
int ret = -ENOMEM;
- if (!size)
+ if (!size) {
+ dev_err(dev, "Buffer create. Invalid zero size");
+
return -EINVAL;
+ }
buf = devm_kzalloc(dev, sizeof(*buf), GFP_KERNEL);
- if (!buf)
+ if (!buf) {
+ dev_err(dev, "Buffer create. Failed to allocate struct");
+
return -ENOMEM;
+ }
buf->dev = dev;
kref_init(&buf->kref);
@@ -152,13 +158,20 @@ int ethosu_buffer_create(struct device *dev,
buf->dma_mem = ethosu_dma_mem_alloc(dev, size);
if (IS_ERR(buf->dma_mem)) {
ret = PTR_ERR(buf->dma_mem);
+ dev_err(dev,
+ "Buffer create. Failed to allocate DMA memory. ret=%d",
+ ret);
goto free_buf;
}
ret = anon_inode_getfd("ethosu-buffer", &ethosu_buffer_fops, buf,
O_RDWR | O_CLOEXEC);
- if (ret < 0)
+ if (ret < 0) {
+ dev_err(dev,
+ "Buffer create. Failed to get file descriptor. ret=%d",
+ ret);
goto free_dma;
+ }
buf->file = fget(ret);
buf->file->f_mode |= FMODE_LSEEK;
diff --git a/kernel/common/ethosu_dma_mem.c b/kernel/common/ethosu_dma_mem.c
index 0e05978..fd444d2 100644
--- a/kernel/common/ethosu_dma_mem.c
+++ b/kernel/common/ethosu_dma_mem.c
@@ -35,18 +35,27 @@ struct ethosu_dma_mem *ethosu_dma_mem_alloc(struct device *dev,
{
struct ethosu_dma_mem *dma_mem;
- if (!size)
+ if (!size) {
+ dev_err(dev, "DMA mem alloc. Invalid zero size");
+
return ERR_PTR(-EINVAL);
+ }
dma_mem = devm_kzalloc(dev, sizeof(*dma_mem), GFP_KERNEL);
- if (!dma_mem)
+ if (!dma_mem) {
+ dev_err(dev,
+ "DMA mem alloc. Failed to allocate struct");
+
return ERR_PTR(-ENOMEM);
+ }
dma_mem->dev = dev;
dma_mem->size = size;
dma_mem->cpu_addr = dma_alloc_coherent(dev, size, &dma_mem->dma_addr,
GFP_KERNEL);
if (!dma_mem->cpu_addr) {
+ dev_err(dev, "DMA mem alloc. Failed to allocate 0x%02zx bytes",
+ size);
memset(dma_mem, 0, sizeof(*dma_mem));
devm_kfree(dev, dma_mem);