diff options
author | Lauri Peltonen <lpeltonen@nvidia.com> | 2014-06-11 04:25:43 -0400 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-03-18 15:10:10 -0400 |
commit | dbde063bf6048551ab0b49a9a7de7e31e7bbad03 (patch) | |
tree | 61371ad85691567ad216e25f075951c526da6485 /drivers/gpu/nvgpu/gk20a/channel_gk20a.c | |
parent | e204224b26e6b5f609bc4e542368c1a13aeece61 (diff) |
gpu: nvgpu: Update channel on semaphore release
When using semaphore based channel synchronization, a semaphore release
may mean that a job has completed. Call gk20a_channel_update from
gk20a_channel_semaphore_wakeup to check if there are memory refs to
release or sync timelines to signal.
Bug 1450122
Change-Id: Ib829c895dab05676c35f974d3f1c3d88c047c9b9
Signed-off-by: Lauri Peltonen <lpeltonen@nvidia.com>
Reviewed-on: http://git-master/r/394576
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c index 651ea08c..a9aec435 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c | |||
@@ -1994,8 +1994,10 @@ void gk20a_channel_semaphore_wakeup(struct gk20a *g) | |||
1994 | 1994 | ||
1995 | for (chid = 0; chid < f->num_channels; chid++) { | 1995 | for (chid = 0; chid < f->num_channels; chid++) { |
1996 | struct channel_gk20a *c = g->fifo.channel+chid; | 1996 | struct channel_gk20a *c = g->fifo.channel+chid; |
1997 | if (c->in_use) | 1997 | if (c->in_use) { |
1998 | wake_up_interruptible_all(&c->semaphore_wq); | 1998 | wake_up_interruptible_all(&c->semaphore_wq); |
1999 | gk20a_channel_update(c, 0); | ||
2000 | } | ||
1999 | } | 2001 | } |
2000 | } | 2002 | } |
2001 | 2003 | ||