mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 10:34:43 +03:00
gpu: nvgpu: vgpu: implement .free_syncpt_buf
vgpu needs to free the va range besides unmap the syncpt buffer. Jira VFND-4870 Change-Id: Ia9edb687b66db6da8529bf256d348999e24a0bc3 Signed-off-by: Richard Zhao <rizhao@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1693094 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
Tejal Kudav
parent
d4ede4b59f
commit
7aa928fa07
@@ -21,6 +21,7 @@
|
||||
*/
|
||||
|
||||
#include <gk20a/gk20a.h>
|
||||
#include <nvgpu/dma.h>
|
||||
#include <nvgpu/vgpu/vgpu.h>
|
||||
#include <nvgpu/nvhost.h>
|
||||
#include <nvgpu/vgpu/tegra_vgpu.h>
|
||||
@@ -116,6 +117,14 @@ int vgpu_gv11b_fifo_alloc_syncpt_buf(struct channel_gk20a *c,
|
||||
return 0;
|
||||
}
|
||||
|
||||
void vgpu_gv11b_fifo_free_syncpt_buf(struct channel_gk20a *c,
|
||||
struct nvgpu_mem *syncpt_buf)
|
||||
{
|
||||
nvgpu_gmmu_unmap(c->vm, syncpt_buf, syncpt_buf->gpu_va);
|
||||
__nvgpu_vm_free_va(c->vm, syncpt_buf->gpu_va, gmmu_page_size_kernel);
|
||||
nvgpu_dma_free(c->g, syncpt_buf);
|
||||
}
|
||||
|
||||
int vgpu_gv11b_fifo_get_sync_ro_map(struct vm_gk20a *vm,
|
||||
u64 *base_gpuva, u32 *sync_size)
|
||||
{
|
||||
|
||||
@@ -28,6 +28,8 @@ struct gk20a;
|
||||
int vgpu_gv11b_init_fifo_setup_hw(struct gk20a *g);
|
||||
int vgpu_gv11b_fifo_alloc_syncpt_buf(struct channel_gk20a *c,
|
||||
u32 syncpt_id, struct nvgpu_mem *syncpt_buf);
|
||||
void vgpu_gv11b_fifo_free_syncpt_buf(struct channel_gk20a *c,
|
||||
struct nvgpu_mem *syncpt_buf);
|
||||
int vgpu_gv11b_fifo_get_sync_ro_map(struct vm_gk20a *vm,
|
||||
u64 *base_gpuva, u32 *sync_size);
|
||||
#endif
|
||||
|
||||
@@ -408,7 +408,7 @@ static const struct gpu_ops vgpu_gv11b_ops = {
|
||||
.setup_sw = gk20a_init_fifo_setup_sw,
|
||||
#ifdef CONFIG_TEGRA_GK20A_NVHOST
|
||||
.alloc_syncpt_buf = vgpu_gv11b_fifo_alloc_syncpt_buf,
|
||||
.free_syncpt_buf = gv11b_fifo_free_syncpt_buf,
|
||||
.free_syncpt_buf = vgpu_gv11b_fifo_free_syncpt_buf,
|
||||
.add_syncpt_wait_cmd = gv11b_fifo_add_syncpt_wait_cmd,
|
||||
.get_syncpt_wait_cmd_size = gv11b_fifo_get_syncpt_wait_cmd_size,
|
||||
.get_syncpt_incr_per_release =
|
||||
|
||||
Reference in New Issue
Block a user