summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
diff options
context:
space:
mode:
authorLeonid Moiseichuk <lmoiseichuk@nvidia.com>2015-08-11 06:38:51 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2015-09-04 12:03:07 -0400
commit54c2ae59f0010c75bc03719e7b5ece4040c102d3 (patch)
tree549ea910d4de7dde2d335e3f0198baab51354177 /drivers/gpu/nvgpu/gm20b/gr_gm20b.c
parenteeb604c23d4ea7a6a7900b99a2ae92cff0488112 (diff)
gpu: nvgpu: cyclestats snapshot permissions rework
Cyclestats snapshot feature is expected for new devices. The detection code was isolated in separate function and run-time check added to validate/allow ioctl calls on the current GPU. Bug 1674079 Change-Id: Icc2f1e5cc50d39b395d31d5292c314f99d67f3eb Signed-off-by: Leonid Moiseichuk <lmoiseichuk@nvidia.com> Reviewed-on: http://git-master/r/781697 (cherry picked from commit bdd23136b182c933841f91dd2829061e278a46d4) Reviewed-on: http://git-master/r/793630 Reviewed-by: Konsta Holtta <kholtta@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b/gr_gm20b.c')
-rw-r--r--drivers/gpu/nvgpu/gm20b/gr_gm20b.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
index 6c7831d5..17b4b8ea 100644
--- a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
@@ -1040,6 +1040,18 @@ static u32 gr_gm20b_get_max_fbps_count(struct gk20a *g)
1040 return max_fbps_count; 1040 return max_fbps_count;
1041} 1041}
1042 1042
1043static void gr_gm20b_init_cyclestats(struct gk20a *g)
1044{
1045#if defined(CONFIG_GK20A_CYCLE_STATS)
1046 g->gpu_characteristics.flags |=
1047 NVGPU_GPU_FLAGS_SUPPORT_CYCLE_STATS;
1048 g->gpu_characteristics.flags |=
1049 NVGPU_GPU_FLAGS_SUPPORT_CYCLE_STATS_SNAPSHOT;
1050#else
1051 (void)g;
1052#endif
1053}
1054
1043void gm20b_init_gr(struct gpu_ops *gops) 1055void gm20b_init_gr(struct gpu_ops *gops)
1044{ 1056{
1045 gops->gr.init_gpc_mmu = gr_gm20b_init_gpc_mmu; 1057 gops->gr.init_gpc_mmu = gr_gm20b_init_gpc_mmu;
@@ -1094,4 +1106,5 @@ void gm20b_init_gr(struct gpu_ops *gops)
1094 gops->gr.get_max_fbps_count = gr_gm20b_get_max_fbps_count; 1106 gops->gr.get_max_fbps_count = gr_gm20b_get_max_fbps_count;
1095 gops->gr.init_sm_dsm_reg_info = gr_gm20b_init_sm_dsm_reg_info; 1107 gops->gr.init_sm_dsm_reg_info = gr_gm20b_init_sm_dsm_reg_info;
1096 gops->gr.wait_empty = gr_gk20a_wait_idle; 1108 gops->gr.wait_empty = gr_gk20a_wait_idle;
1109 gops->gr.init_cyclestats = gr_gm20b_init_cyclestats;
1097} 1110}