diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/channel.c')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/channel.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/channel.c b/drivers/gpu/nvgpu/common/linux/channel.c index 716c5820..c295336f 100644 --- a/drivers/gpu/nvgpu/common/linux/channel.c +++ b/drivers/gpu/nvgpu/common/linux/channel.c | |||
@@ -537,6 +537,17 @@ int gk20a_submit_channel_gpfifo(struct channel_gk20a *c, | |||
537 | if (c->deterministic) | 537 | if (c->deterministic) |
538 | nvgpu_rwsem_down_read(&g->deterministic_busy); | 538 | nvgpu_rwsem_down_read(&g->deterministic_busy); |
539 | 539 | ||
540 | if (c->deterministic && c->deterministic_railgate_allowed) { | ||
541 | /* | ||
542 | * Nope - this channel has dropped its own power ref. As | ||
543 | * deterministic submits don't hold power on per each submitted | ||
544 | * job like normal ones do, the GPU might railgate any time now | ||
545 | * and thus submit is disallowed. | ||
546 | */ | ||
547 | err = -EINVAL; | ||
548 | goto clean_up; | ||
549 | } | ||
550 | |||
540 | trace_gk20a_channel_submit_gpfifo(g->name, | 551 | trace_gk20a_channel_submit_gpfifo(g->name, |
541 | c->chid, | 552 | c->chid, |
542 | num_entries, | 553 | num_entries, |