mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 17:36:20 +03:00
gpu: nvgpu: Add support for Linux v5.11
For Linux v5.11, commit 6619ccf1bb1d ("dma-buf: Use struct dma_buf_map
in dma_buf_vmap() interfaces") changes to the dma_buf_vmap() and
dma_buf_vunmap() APIs to pass a new parameter of type
'struct dma_buf_map'. Update the NVGPU to support these updated APIs
for Linux v5.11+.
Finally, the legacy dma_buf_vmap() API returns NULL on error and not an
error code and so correct the test of the return value in the function
gk20a_cde_convert().
Bug 200687525
Change-Id: Ie20f101e965fa0f2c650d9b30ff4558ce1256c12
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2469555
Reviewed-by: Sagar Kamble <skamble@nvidia.com>
Reviewed-by: Alex Waterman <alexw@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
This commit is contained in:
committed by
mobile promotions
parent
a03da4a077
commit
ddf8f12197
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017-2020, NVIDIA Corporation. All rights reserved.
|
||||
* Copyright (c) 2017-2021, NVIDIA Corporation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
@@ -655,6 +655,9 @@ static void trace_write_pushbuffer(struct nvgpu_channel *c,
|
||||
unsigned int words;
|
||||
u64 offset;
|
||||
struct dma_buf *dmabuf = NULL;
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0)
|
||||
struct dma_buf_map map;
|
||||
#endif
|
||||
|
||||
if (gk20a_debug_trace_cmdbuf) {
|
||||
u64 gpu_va = (u64)g->entry0 |
|
||||
@@ -663,8 +666,14 @@ static void trace_write_pushbuffer(struct nvgpu_channel *c,
|
||||
|
||||
words = pbdma_gp_entry1_length_v(g->entry1);
|
||||
err = nvgpu_vm_find_buf(c->vm, gpu_va, &dmabuf, &offset);
|
||||
if (!err)
|
||||
if (!err) {
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0)
|
||||
err = dma_buf_vmap(dmabuf, &map);
|
||||
mem = err ? NULL : map.vaddr;
|
||||
#else
|
||||
mem = dma_buf_vmap(dmabuf);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
if (mem) {
|
||||
@@ -683,7 +692,11 @@ static void trace_write_pushbuffer(struct nvgpu_channel *c,
|
||||
mem);
|
||||
}
|
||||
#endif
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 11, 0)
|
||||
dma_buf_vunmap(dmabuf, &map);
|
||||
#else
|
||||
dma_buf_vunmap(dmabuf, mem);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user