summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2016-04-27 09:32:51 -0400
committerDeepak Nibade <dnibade@nvidia.com>2016-12-27 04:54:54 -0500
commitc09f0baf5bce8f2533c6df10ede5c1a40bf6d4e7 (patch)
treedd5685a1e4fa9436f7b5380f0a82abd64bd67500 /drivers/gpu/nvgpu/gp10b/gr_gp10b.c
parent6113c679a99ca09256d33a582a4dfe648e100c23 (diff)
gpu: nvgpu: API to return preemption modes
Add API gr_gp10b_get_preemption_mode_flags() to return supported and default graphics/compute preemption modes on gp10b Bug 1646259 Change-Id: I291a82a911e021b605b6d1ccae9cef663cc7a01a Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/1133596 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gp10b/gr_gp10b.c')
-rw-r--r--drivers/gpu/nvgpu/gp10b/gr_gp10b.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
index a1a13a2b..8ea9235d 100644
--- a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
+++ b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c
@@ -1971,6 +1971,25 @@ unmap_ctx:
1971 return err; 1971 return err;
1972} 1972}
1973 1973
1974static int gr_gp10b_get_preemption_mode_flags(struct gk20a *g,
1975 struct nvgpu_preemption_modes_rec *preemption_modes_rec)
1976{
1977 preemption_modes_rec->graphics_preemption_mode_flags = (
1978 NVGPU_GRAPHICS_PREEMPTION_MODE_WFI |
1979 NVGPU_GRAPHICS_PREEMPTION_MODE_GFXP);
1980 preemption_modes_rec->compute_preemption_mode_flags = (
1981 NVGPU_COMPUTE_PREEMPTION_MODE_WFI |
1982 NVGPU_COMPUTE_PREEMPTION_MODE_CTA |
1983 NVGPU_COMPUTE_PREEMPTION_MODE_CILP);
1984
1985 preemption_modes_rec->default_graphics_preempt_mode =
1986 NVGPU_GRAPHICS_PREEMPTION_MODE_WFI;
1987 preemption_modes_rec->default_compute_preempt_mode =
1988 NVGPU_COMPUTE_PREEMPTION_MODE_WFI;
1989
1990 return 0;
1991}
1992
1974void gp10b_init_gr(struct gpu_ops *gops) 1993void gp10b_init_gr(struct gpu_ops *gops)
1975{ 1994{
1976 gm20b_init_gr(gops); 1995 gm20b_init_gr(gops);
@@ -2011,4 +2030,5 @@ void gp10b_init_gr(struct gpu_ops *gops)
2011 gops->gr.get_lrf_tex_ltc_dram_override = get_ecc_override_val; 2030 gops->gr.get_lrf_tex_ltc_dram_override = get_ecc_override_val;
2012 gops->gr.suspend_contexts = gr_gp10b_suspend_contexts; 2031 gops->gr.suspend_contexts = gr_gp10b_suspend_contexts;
2013 gops->gr.set_preemption_mode = gr_gp10b_set_preemption_mode; 2032 gops->gr.set_preemption_mode = gr_gp10b_set_preemption_mode;
2033 gops->gr.get_preemption_mode_flags = gr_gp10b_get_preemption_mode_flags;
2014} 2034}