summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b/gr_gm20b.c')
-rw-r--r--drivers/gpu/nvgpu/gm20b/gr_gm20b.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
index dbe30f00..2a982f87 100644
--- a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
@@ -1345,6 +1345,23 @@ fail:
1345 return err; 1345 return err;
1346} 1346}
1347 1347
1348static int gr_gm20b_get_preemption_mode_flags(struct gk20a *g,
1349 struct nvgpu_preemption_modes_rec *preemption_modes_rec)
1350{
1351 preemption_modes_rec->graphics_preemption_mode_flags =
1352 NVGPU_GRAPHICS_PREEMPTION_MODE_WFI;
1353 preemption_modes_rec->compute_preemption_mode_flags = (
1354 NVGPU_COMPUTE_PREEMPTION_MODE_WFI |
1355 NVGPU_COMPUTE_PREEMPTION_MODE_CTA);
1356
1357 preemption_modes_rec->default_graphics_preempt_mode =
1358 NVGPU_GRAPHICS_PREEMPTION_MODE_WFI;
1359 preemption_modes_rec->default_compute_preempt_mode =
1360 NVGPU_COMPUTE_PREEMPTION_MODE_CTA;
1361
1362 return 0;
1363}
1364
1348void gm20b_init_gr(struct gpu_ops *gops) 1365void gm20b_init_gr(struct gpu_ops *gops)
1349{ 1366{
1350 gops->gr.init_gpc_mmu = gr_gm20b_init_gpc_mmu; 1367 gops->gr.init_gpc_mmu = gr_gm20b_init_gpc_mmu;
@@ -1417,4 +1434,5 @@ void gm20b_init_gr(struct gpu_ops *gops)
1417 gops->gr.update_sm_error_state = gm20b_gr_update_sm_error_state; 1434 gops->gr.update_sm_error_state = gm20b_gr_update_sm_error_state;
1418 gops->gr.clear_sm_error_state = gm20b_gr_clear_sm_error_state; 1435 gops->gr.clear_sm_error_state = gm20b_gr_clear_sm_error_state;
1419 gops->gr.suspend_contexts = gr_gk20a_suspend_contexts; 1436 gops->gr.suspend_contexts = gr_gk20a_suspend_contexts;
1437 gops->gr.get_preemption_mode_flags = gr_gm20b_get_preemption_mode_flags;
1420} 1438}