diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2016-12-22 03:15:21 -0500 |
---|---|---|
committer | Deepak Nibade <dnibade@nvidia.com> | 2016-12-27 04:56:53 -0500 |
commit | 2aa3c85f8e82b3c07c39e677663abd3687c1822a (patch) | |
tree | 92923d2efccf90d1961071fa9acde59178a0d688 /drivers/gpu/nvgpu/gp10b/gr_gp10b.c | |
parent | 76a18f5e762c79e8e6902ec93b7d6ea741475365 (diff) |
gpu: nvgpu: skip setting preemption modes if already set
In gr_gp10b_set_preemption_mode(), skip setting anything
if both graphics and compute preemption modes are
already set
Bug 200263471
Change-Id: I2788464750835da8f6396c6c1ca8356a63758c80
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: http://git-master/r/1275465
GVS: Gerrit_Virtual_Submit
Reviewed-by: Lakshmanan M <lm@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gp10b/gr_gp10b.c')
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/gr_gp10b.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c index 91ea086c..9de7d675 100644 --- a/drivers/gpu/nvgpu/gp10b/gr_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/gr_gp10b.c | |||
@@ -2075,6 +2075,18 @@ static int gr_gp10b_set_preemption_mode(struct channel_gk20a *ch, | |||
2075 | vm = ch->vm; | 2075 | vm = ch->vm; |
2076 | } | 2076 | } |
2077 | 2077 | ||
2078 | /* skip setting anything if both modes are already set */ | ||
2079 | if (graphics_preempt_mode && | ||
2080 | (graphics_preempt_mode == gr_ctx->graphics_preempt_mode)) | ||
2081 | graphics_preempt_mode = 0; | ||
2082 | |||
2083 | if (compute_preempt_mode && | ||
2084 | (compute_preempt_mode == gr_ctx->compute_preempt_mode)) | ||
2085 | compute_preempt_mode = 0; | ||
2086 | |||
2087 | if (graphics_preempt_mode == 0 && compute_preempt_mode == 0) | ||
2088 | return 0; | ||
2089 | |||
2078 | if (g->ops.gr.set_ctxsw_preemption_mode) { | 2090 | if (g->ops.gr.set_ctxsw_preemption_mode) { |
2079 | err = g->ops.gr.set_ctxsw_preemption_mode(g, gr_ctx, vm, class, | 2091 | err = g->ops.gr.set_ctxsw_preemption_mode(g, gr_ctx, vm, class, |
2080 | graphics_preempt_mode, compute_preempt_mode); | 2092 | graphics_preempt_mode, compute_preempt_mode); |