summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2015-09-10 04:50:53 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2015-09-11 11:46:32 -0400
commitcf0351a560f01aa71d01dab568ccba36458ecd41 (patch)
treea963ffe8df58eb2320491af7a527819fff29426f /drivers/gpu/nvgpu
parent0398e0751f51d8ed04da1c32cc5979a0b9c47a43 (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>
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.c4
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);