summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2016-04-27 09:32:43 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2016-05-09 16:16:53 -0400
commit771f742703bb56598bc341ec4eaee5ff7c036d4d (patch)
treea74d32db43c4fe87ee6d55a587a8f6de12490bbf /drivers/gpu/nvgpu/gk20a/gr_gk20a.c
parentd868b654419cfa096f563c9281a2a5cc067c23db (diff)
gpu: nvgpu: add supported preemptions to gpu characteristics
Add below flag fields to gpu characteristics to indicate supported and default preemption modes on platform for graphics and compute __u32 graphics_preemption_mode_flags; __u32 compute_preemption_mode_flags; __u32 default_graphics_preempt_mode; __u32 default_compute_preempt_mode; Add struct nvgpu_preemption_modes_rec to struct gr_gk20a to store these values locally Use platform specific get_preemption_mode_flags() to get the flags and define gk20a/gm20b specific get_preemption_mode_flags() API Bug 1646259 Change-Id: I80193c0d988dc93bd96585f9aa631fd817f4dfa3 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/1133595 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gr_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index aa63e559..8b645cc2 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -8659,6 +8659,22 @@ clean_up:
8659 return err; 8659 return err;
8660} 8660}
8661 8661
8662static int gr_gk20a_get_preemption_mode_flags(struct gk20a *g,
8663 struct nvgpu_preemption_modes_rec *preemption_modes_rec)
8664{
8665 preemption_modes_rec->graphics_preemption_mode_flags =
8666 NVGPU_GRAPHICS_PREEMPTION_MODE_WFI;
8667 preemption_modes_rec->compute_preemption_mode_flags =
8668 NVGPU_COMPUTE_PREEMPTION_MODE_WFI;
8669
8670 preemption_modes_rec->default_graphics_preempt_mode =
8671 NVGPU_GRAPHICS_PREEMPTION_MODE_WFI;
8672 preemption_modes_rec->default_compute_preempt_mode =
8673 NVGPU_COMPUTE_PREEMPTION_MODE_WFI;
8674
8675 return 0;
8676}
8677
8662void gk20a_init_gr_ops(struct gpu_ops *gops) 8678void gk20a_init_gr_ops(struct gpu_ops *gops)
8663{ 8679{
8664 gops->gr.access_smpc_reg = gr_gk20a_access_smpc_reg; 8680 gops->gr.access_smpc_reg = gr_gk20a_access_smpc_reg;
@@ -8726,4 +8742,5 @@ void gk20a_init_gr_ops(struct gpu_ops *gops)
8726 gops->gr.update_sm_error_state = gk20a_gr_update_sm_error_state; 8742 gops->gr.update_sm_error_state = gk20a_gr_update_sm_error_state;
8727 gops->gr.clear_sm_error_state = gk20a_gr_clear_sm_error_state; 8743 gops->gr.clear_sm_error_state = gk20a_gr_clear_sm_error_state;
8728 gops->gr.suspend_contexts = gr_gk20a_suspend_contexts; 8744 gops->gr.suspend_contexts = gr_gk20a_suspend_contexts;
8745 gops->gr.get_preemption_mode_flags = gr_gk20a_get_preemption_mode_flags;
8729} 8746}