diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2015-09-10 04:50:53 -0400 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2015-09-11 11:46:32 -0400 |
commit | cf0351a560f01aa71d01dab568ccba36458ecd41 (patch) | |
tree | a963ffe8df58eb2320491af7a527819fff29426f | |
parent | 0398e0751f51d8ed04da1c32cc5979a0b9c47a43 (diff) |
gpu: nvgpu: disable channel before adjusting syncpoints
As per current sequence in gk20a_channel_abort(),
we first balance the syncpoint values associated with
failing channel, and then abort it
Reverse this sequence so that we first disable the channel
and then only balance the syncpoints
Bug 200133289
Change-Id: I5a748afce437e728a5ff6c8a030a75d0f627c622
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: http://git-master/r/797071
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c index 21a3bec5..dae9c8cb 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c | |||
@@ -370,6 +370,8 @@ void gk20a_channel_abort(struct channel_gk20a *ch) | |||
370 | /* make sure new kickoffs are prevented */ | 370 | /* make sure new kickoffs are prevented */ |
371 | ch->has_timedout = true; | 371 | ch->has_timedout = true; |
372 | 372 | ||
373 | ch->g->ops.fifo.disable_channel(ch); | ||
374 | |||
373 | /* ensure no fences are pending */ | 375 | /* ensure no fences are pending */ |
374 | mutex_lock(&ch->submit_lock); | 376 | mutex_lock(&ch->submit_lock); |
375 | if (ch->sync) | 377 | if (ch->sync) |
@@ -387,8 +389,6 @@ void gk20a_channel_abort(struct channel_gk20a *ch) | |||
387 | } | 389 | } |
388 | mutex_unlock(&ch->jobs_lock); | 390 | mutex_unlock(&ch->jobs_lock); |
389 | 391 | ||
390 | ch->g->ops.fifo.disable_channel(ch); | ||
391 | |||
392 | if (released_job_semaphore) { | 392 | if (released_job_semaphore) { |
393 | wake_up_interruptible_all(&ch->semaphore_wq); | 393 | wake_up_interruptible_all(&ch->semaphore_wq); |
394 | gk20a_channel_update(ch, 0); | 394 | gk20a_channel_update(ch, 0); |