diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 4 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 18 |
2 files changed, 22 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index c8d06b4f..96ca69a3 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h | |||
@@ -194,6 +194,8 @@ struct gpu_ops { | |||
194 | void (*set_circular_buffer_size)(struct gk20a *g, u32 data); | 194 | void (*set_circular_buffer_size)(struct gk20a *g, u32 data); |
195 | void (*enable_hww_exceptions)(struct gk20a *g); | 195 | void (*enable_hww_exceptions)(struct gk20a *g); |
196 | bool (*is_valid_class)(struct gk20a *g, u32 class_num); | 196 | bool (*is_valid_class)(struct gk20a *g, u32 class_num); |
197 | bool (*is_valid_gfx_class)(struct gk20a *g, u32 class_num); | ||
198 | bool (*is_valid_compute_class)(struct gk20a *g, u32 class_num); | ||
197 | void (*get_sm_dsm_perf_regs)(struct gk20a *g, | 199 | void (*get_sm_dsm_perf_regs)(struct gk20a *g, |
198 | u32 *num_sm_dsm_perf_regs, | 200 | u32 *num_sm_dsm_perf_regs, |
199 | u32 **sm_dsm_perf_regs, | 201 | u32 **sm_dsm_perf_regs, |
@@ -354,6 +356,8 @@ struct gpu_ops { | |||
354 | struct nvgpu_mem *mem, u64 gpu_va); | 356 | struct nvgpu_mem *mem, u64 gpu_va); |
355 | void (*write_pm_ptr)(struct gk20a *g, | 357 | void (*write_pm_ptr)(struct gk20a *g, |
356 | struct nvgpu_mem *mem, u64 gpu_va); | 358 | struct nvgpu_mem *mem, u64 gpu_va); |
359 | void (*write_preemption_ptr)(struct gk20a *g, | ||
360 | struct nvgpu_mem *mem, u64 gpu_va); | ||
357 | void (*init_elcg_mode)(struct gk20a *g, u32 mode, u32 engine); | 361 | void (*init_elcg_mode)(struct gk20a *g, u32 mode, u32 engine); |
358 | void (*load_tpc_mask)(struct gk20a *g); | 362 | void (*load_tpc_mask)(struct gk20a *g); |
359 | int (*inval_icache)(struct gk20a *g, struct channel_gk20a *ch); | 363 | int (*inval_icache)(struct gk20a *g, struct channel_gk20a *ch); |
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 | ||
3116 | static 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 | |||
3124 | static 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 | |||
3116 | int gk20a_alloc_obj_ctx(struct channel_gk20a *c, | 3132 | int 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; |