summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Stultz <john.stultz@linaro.org>2020-02-07 17:06:14 +0000
committerJohn Stultz <john.stultz@linaro.org>2021-01-07 00:04:53 +0000
commitf29415011b033bbd47cac3342311672117db014a (patch)
tree10baed19d6814eb130278d425e4793ee6ad511ff
parent686c2bc20c9753e5c5f826740032e23011bcc6ee (diff)
downloadhikey-modules-f29415011b033bbd47cac3342311672117db014a.tar.gz
MALI: Fix up deprecated dmabuf kmap interface
Solution from YongQin Liu <yongqin.liu@linaro.org> Signed-off-by: John Stultz <john.stultz@lianro.org> Change-Id: I5e3031a1be8b43e9ca55d7e0cf24361f56835bfa
-rw-r--r--midgard/mali_kbase_softjobs.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/midgard/mali_kbase_softjobs.c b/midgard/mali_kbase_softjobs.c
index 47f941a..5d074df 100644
--- a/midgard/mali_kbase_softjobs.c
+++ b/midgard/mali_kbase_softjobs.c
@@ -807,6 +807,7 @@ static int kbase_mem_copy_from_extres(struct kbase_context *kctx,
#ifdef CONFIG_DMA_SHARED_BUFFER
case KBASE_MEM_TYPE_IMPORTED_UMM: {
struct dma_buf *dma_buf = gpu_alloc->imported.umm.dma_buf;
+ void *dma_kernel;
KBASE_DEBUG_ASSERT(dma_buf != NULL);
if (dma_buf->size > buf_data->nr_extres_pages * PAGE_SIZE)
@@ -822,9 +823,9 @@ static int kbase_mem_copy_from_extres(struct kbase_context *kctx,
if (ret)
goto out_unlock;
+ dma_kernel = dma_buf_vmap(dma_buf);
for (i = 0; i < dma_to_copy/PAGE_SIZE; i++) {
-
- void *extres_page = dma_buf_kmap(dma_buf, i);
+ void *extres_page = dma_kernel + i * PAGE_SIZE;
if (extres_page)
kbase_mem_copy_from_extres_page(kctx,
@@ -833,10 +834,10 @@ static int kbase_mem_copy_from_extres(struct kbase_context *kctx,
&target_page_nr,
offset, &to_copy);
- dma_buf_kunmap(dma_buf, i, extres_page);
if (target_page_nr >= buf_data->nr_pages)
break;
}
+ dma_buf_vunmap(dma_buf, dma_kernel);
dma_buf_end_cpu_access(dma_buf,
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) && !defined(CONFIG_CHROMEOS)
0, dma_to_copy,