diff --git a/drivers/gpu/nvgpu/common/init/nvgpu_init.c b/drivers/gpu/nvgpu/common/init/nvgpu_init.c index c58b17826..3b0ae0302 100644 --- a/drivers/gpu/nvgpu/common/init/nvgpu_init.c +++ b/drivers/gpu/nvgpu/common/init/nvgpu_init.c @@ -500,10 +500,7 @@ void gk20a_init_gpu_characteristics(struct gk20a *g) { nvgpu_set_enabled(g, NVGPU_SUPPORT_MAP_DIRECT_KIND_CTRL, true); nvgpu_set_enabled(g, NVGPU_SUPPORT_MAP_BUFFER_BATCH, true); - - if ((g->ops.mm.support_sparse != NULL) && g->ops.mm.support_sparse(g)) { - nvgpu_set_enabled(g, NVGPU_SUPPORT_SPARSE_ALLOCS, true); - } + nvgpu_set_enabled(g, NVGPU_SUPPORT_SPARSE_ALLOCS, true); /* * Fast submits are supported as long as the user doesn't request diff --git a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c index 4549dbc76..d8ef4e383 100644 --- a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c @@ -571,7 +571,6 @@ static const struct gpu_ops gm20b_ops = { .is_fw_defined = gm20b_netlist_is_firmware_defined, }, .mm = { - .support_sparse = gm20b_mm_support_sparse, .gmmu_map = gk20a_locked_gmmu_map, .gmmu_unmap = gk20a_locked_gmmu_unmap, .vm_bind_channel = gk20a_vm_bind_channel, diff --git a/drivers/gpu/nvgpu/gm20b/mm_gm20b.c b/drivers/gpu/nvgpu/gm20b/mm_gm20b.c index a85e09df6..41ded94e2 100644 --- a/drivers/gpu/nvgpu/gm20b/mm_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/mm_gm20b.c @@ -61,11 +61,6 @@ u32 gm20b_mm_get_default_big_page_size(void) return SZ_64K; } -bool gm20b_mm_support_sparse(struct gk20a *g) -{ - return true; -} - bool gm20b_mm_is_bar1_supported(struct gk20a *g) { return true; diff --git a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c index e01c7b80b..c47ae9b89 100644 --- a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c @@ -643,7 +643,6 @@ static const struct gpu_ops gp10b_ops = { }, #endif /* CONFIG_GK20A_CTXSW_TRACE */ .mm = { - .support_sparse = gm20b_mm_support_sparse, .gmmu_map = gk20a_locked_gmmu_map, .gmmu_unmap = gk20a_locked_gmmu_unmap, .vm_bind_channel = gk20a_vm_bind_channel, diff --git a/drivers/gpu/nvgpu/gv100/hal_gv100.c b/drivers/gpu/nvgpu/gv100/hal_gv100.c index 8a1c0f070..36a65192d 100644 --- a/drivers/gpu/nvgpu/gv100/hal_gv100.c +++ b/drivers/gpu/nvgpu/gv100/hal_gv100.c @@ -813,7 +813,6 @@ static const struct gpu_ops gv100_ops = { }, #endif /* CONFIG_GK20A_CTXSW_TRACE */ .mm = { - .support_sparse = gm20b_mm_support_sparse, .gmmu_map = gk20a_locked_gmmu_map, .gmmu_unmap = gk20a_locked_gmmu_unmap, .vm_bind_channel = gk20a_vm_bind_channel, diff --git a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c index dfde72daa..996335024 100644 --- a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c @@ -773,7 +773,6 @@ static const struct gpu_ops gv11b_ops = { }, #endif /* CONFIG_GK20A_CTXSW_TRACE */ .mm = { - .support_sparse = gm20b_mm_support_sparse, .gmmu_map = gk20a_locked_gmmu_map, .gmmu_unmap = gk20a_locked_gmmu_unmap, .vm_bind_channel = gk20a_vm_bind_channel, diff --git a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h index 4348a4b2a..99d8babaf 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h +++ b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h @@ -1067,7 +1067,6 @@ struct gpu_ops { } fecs_trace; #endif struct { - bool (*support_sparse)(struct gk20a *g); u64 (*gmmu_map)(struct vm_gk20a *vm, u64 map_offset, struct nvgpu_sgt *sgt, diff --git a/drivers/gpu/nvgpu/tu104/hal_tu104.c b/drivers/gpu/nvgpu/tu104/hal_tu104.c index b698fe249..c60740889 100644 --- a/drivers/gpu/nvgpu/tu104/hal_tu104.c +++ b/drivers/gpu/nvgpu/tu104/hal_tu104.c @@ -844,7 +844,6 @@ static const struct gpu_ops tu104_ops = { }, #endif /* CONFIG_GK20A_CTXSW_TRACE */ .mm = { - .support_sparse = gm20b_mm_support_sparse, .gmmu_map = gk20a_locked_gmmu_map, .gmmu_unmap = gk20a_locked_gmmu_unmap, .vm_bind_channel = gk20a_vm_bind_channel, diff --git a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c index b0c7acfb5..bde0b043c 100644 --- a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c +++ b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c @@ -462,8 +462,6 @@ static const struct gpu_ops vgpu_gp10b_ops = { }, #endif /* CONFIG_GK20A_CTXSW_TRACE */ .mm = { - /* FIXME: add support for sparse mappings */ - .support_sparse = NULL, .gmmu_map = vgpu_gp10b_locked_gmmu_map, .gmmu_unmap = vgpu_locked_gmmu_unmap, .vm_bind_channel = vgpu_vm_bind_channel, diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c index 8c5bf8d83..746cbe9a1 100644 --- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c +++ b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c @@ -540,8 +540,6 @@ static const struct gpu_ops vgpu_gv11b_ops = { }, #endif /* CONFIG_GK20A_CTXSW_TRACE */ .mm = { - /* FIXME: add support for sparse mappings */ - .support_sparse = NULL, .gmmu_map = vgpu_gp10b_locked_gmmu_map, .gmmu_unmap = vgpu_locked_gmmu_unmap, .vm_bind_channel = vgpu_vm_bind_channel, diff --git a/drivers/gpu/nvgpu/vgpu/vgpu.c b/drivers/gpu/nvgpu/vgpu/vgpu.c index e6d3386d7..d43f4e680 100644 --- a/drivers/gpu/nvgpu/vgpu/vgpu.c +++ b/drivers/gpu/nvgpu/vgpu/vgpu.c @@ -285,10 +285,10 @@ void vgpu_init_gpu_characteristics(struct gk20a *g) gk20a_init_gpu_characteristics(g); - nvgpu_set_enabled(g, NVGPU_SUPPORT_MAP_BUFFER_BATCH, false); - /* features vgpu does not support */ + nvgpu_set_enabled(g, NVGPU_SUPPORT_MAP_BUFFER_BATCH, false); nvgpu_set_enabled(g, NVGPU_SUPPORT_RESCHEDULE_RUNLIST, false); + nvgpu_set_enabled(g, NVGPU_SUPPORT_SPARSE_ALLOCS, false); } int vgpu_read_ptimer(struct gk20a *g, u64 *value)