summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
diff options
context:
space:
mode:
authorseshendra Gadagottu <sgadagottu@nvidia.com>2017-01-24 18:38:02 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2017-05-10 17:16:06 -0400
commit2baab4e49e8bb2d5c25759660bc1ae2382d9cb1b (patch)
tree268411c22d20b9245676a192e85b63f55e005f1c /drivers/gpu/nvgpu/gk20a/gr_gk20a.c
parent8b981f3c64897128fd2a94c03a819bbca5edd4da (diff)
gpu: nvgpu: changes related to preemption
Added function pointers to check chip specific valid gfx class and compute class. Also added function pointer to update ctx header with preemption buffer pointers. Bug 200292090 Change-Id: I8119ee082e2abb67186a8ac07088f8db7f410ba1 Signed-off-by: seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-on: http://git-master/r/1293502 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gr_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index 3140c285..77a947de 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -3113,6 +3113,22 @@ static bool gr_gk20a_is_valid_class(struct gk20a *g, u32 class_num)
3113 return valid; 3113 return valid;
3114} 3114}
3115 3115
3116static bool gr_gk20a_is_valid_gfx_class(struct gk20a *g, u32 class_num)
3117{
3118 if (class_num == KEPLER_C)
3119 return true;
3120 else
3121 return false;
3122}
3123
3124static bool gr_gk20a_is_valid_compute_class(struct gk20a *g, u32 class_num)
3125{
3126 if (class_num == KEPLER_COMPUTE_A)
3127 return true;
3128 else
3129 return false;
3130}
3131
3116int gk20a_alloc_obj_ctx(struct channel_gk20a *c, 3132int gk20a_alloc_obj_ctx(struct channel_gk20a *c,
3117 struct nvgpu_alloc_obj_ctx_args *args) 3133 struct nvgpu_alloc_obj_ctx_args *args)
3118{ 3134{
@@ -9462,6 +9478,8 @@ void gk20a_init_gr_ops(struct gpu_ops *gops)
9462 gk20a_gr_set_alpha_circular_buffer_size; 9478 gk20a_gr_set_alpha_circular_buffer_size;
9463 gops->gr.enable_hww_exceptions = gr_gk20a_enable_hww_exceptions; 9479 gops->gr.enable_hww_exceptions = gr_gk20a_enable_hww_exceptions;
9464 gops->gr.is_valid_class = gr_gk20a_is_valid_class; 9480 gops->gr.is_valid_class = gr_gk20a_is_valid_class;
9481 gops->gr.is_valid_gfx_class = gr_gk20a_is_valid_gfx_class;
9482 gops->gr.is_valid_compute_class = gr_gk20a_is_valid_compute_class;
9465 gops->gr.get_sm_dsm_perf_regs = gr_gk20a_get_sm_dsm_perf_regs; 9483 gops->gr.get_sm_dsm_perf_regs = gr_gk20a_get_sm_dsm_perf_regs;
9466 gops->gr.get_sm_dsm_perf_ctrl_regs = gr_gk20a_get_sm_dsm_perf_ctrl_regs; 9484 gops->gr.get_sm_dsm_perf_ctrl_regs = gr_gk20a_get_sm_dsm_perf_ctrl_regs;
9467 gops->gr.init_fs_state = gr_gk20a_init_fs_state; 9485 gops->gr.init_fs_state = gr_gk20a_init_fs_state;