From cf0351a560f01aa71d01dab568ccba36458ecd41 Mon Sep 17 00:00:00 2001 From: Deepak Nibade Date: Thu, 10 Sep 2015 14:20:53 +0530 Subject: 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 Reviewed-on: http://git-master/r/797071 Reviewed-by: Terje Bergstrom Tested-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'drivers/gpu/nvgpu') 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) /* make sure new kickoffs are prevented */ ch->has_timedout = true; + ch->g->ops.fifo.disable_channel(ch); + /* ensure no fences are pending */ mutex_lock(&ch->submit_lock); if (ch->sync) @@ -387,8 +389,6 @@ void gk20a_channel_abort(struct channel_gk20a *ch) } mutex_unlock(&ch->jobs_lock); - ch->g->ops.fifo.disable_channel(ch); - if (released_job_semaphore) { wake_up_interruptible_all(&ch->semaphore_wq); gk20a_channel_update(ch, 0); -- cgit v1.2.2