diff options
author | John Stultz <john.stultz@linaro.org> | 2020-02-07 17:06:14 +0000 |
---|---|---|
committer | John Stultz <john.stultz@linaro.org> | 2021-01-07 00:04:53 +0000 |
commit | f29415011b033bbd47cac3342311672117db014a (patch) | |
tree | 10baed19d6814eb130278d425e4793ee6ad511ff | |
parent | 686c2bc20c9753e5c5f826740032e23011bcc6ee (diff) | |
download | hikey-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.c | 7 |
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, |