diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 5 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.h | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.c | 2 |
3 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c index 805902eb..6c607ae2 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c | |||
@@ -578,7 +578,10 @@ unbind: | |||
578 | if (ch->deterministic) { | 578 | if (ch->deterministic) { |
579 | nvgpu_rwsem_down_read(&g->deterministic_busy); | 579 | nvgpu_rwsem_down_read(&g->deterministic_busy); |
580 | ch->deterministic = false; | 580 | ch->deterministic = false; |
581 | gk20a_idle(g); | 581 | if (!ch->deterministic_railgate_allowed) |
582 | gk20a_idle(g); | ||
583 | ch->deterministic_railgate_allowed = false; | ||
584 | |||
582 | nvgpu_rwsem_up_read(&g->deterministic_busy); | 585 | nvgpu_rwsem_up_read(&g->deterministic_busy); |
583 | } | 586 | } |
584 | 587 | ||
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h index 762daea9..0cb60200 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h | |||
@@ -208,6 +208,8 @@ struct channel_gk20a { | |||
208 | bool first_init; | 208 | bool first_init; |
209 | bool vpr; | 209 | bool vpr; |
210 | bool deterministic; | 210 | bool deterministic; |
211 | /* deterministic, but explicitly idle and submits disallowed */ | ||
212 | bool deterministic_railgate_allowed; | ||
211 | bool cde; | 213 | bool cde; |
212 | pid_t pid; | 214 | pid_t pid; |
213 | pid_t tgid; | 215 | pid_t tgid; |
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index e8db9d2c..756db415 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a.c | |||
@@ -439,6 +439,8 @@ int gk20a_init_gpu_characteristics(struct gk20a *g) | |||
439 | NVGPU_SUPPORT_DETERMINISTIC_SUBMIT_FULL, | 439 | NVGPU_SUPPORT_DETERMINISTIC_SUBMIT_FULL, |
440 | true); | 440 | true); |
441 | 441 | ||
442 | __nvgpu_set_enabled(g, NVGPU_SUPPORT_DETERMINISTIC_OPTS, true); | ||
443 | |||
442 | __nvgpu_set_enabled(g, NVGPU_SUPPORT_USERSPACE_MANAGED_AS, true); | 444 | __nvgpu_set_enabled(g, NVGPU_SUPPORT_USERSPACE_MANAGED_AS, true); |
443 | __nvgpu_set_enabled(g, NVGPU_SUPPORT_TSG, true); | 445 | __nvgpu_set_enabled(g, NVGPU_SUPPORT_TSG, true); |
444 | 446 | ||