diff options
author | Leonid Moiseichuk <lmoiseichuk@nvidia.com> | 2015-08-11 06:38:51 -0400 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2015-09-04 12:03:07 -0400 |
commit | 54c2ae59f0010c75bc03719e7b5ece4040c102d3 (patch) | |
tree | 549ea910d4de7dde2d335e3f0198baab51354177 /drivers/gpu/nvgpu/gm20b | |
parent | eeb604c23d4ea7a6a7900b99a2ae92cff0488112 (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')
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/gr_gm20b.c | 13 |
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 | ||
1043 | static 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 | |||
1043 | void gm20b_init_gr(struct gpu_ops *gops) | 1055 | void 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 | } |