diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c index 65dc1c72..536ca9f3 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c | |||
@@ -252,7 +252,7 @@ void gk20a_channel_abort_clean_up(struct channel_gk20a *ch) | |||
252 | nvgpu_mutex_release(&ch->joblist.cleanup_lock); | 252 | nvgpu_mutex_release(&ch->joblist.cleanup_lock); |
253 | 253 | ||
254 | if (released_job_semaphore) | 254 | if (released_job_semaphore) |
255 | wake_up_interruptible_all(&ch->semaphore_wq); | 255 | nvgpu_cond_broadcast_interruptible(&ch->semaphore_wq); |
256 | 256 | ||
257 | /* | 257 | /* |
258 | * When closing the channel, this scheduled update holds one ref which | 258 | * When closing the channel, this scheduled update holds one ref which |
@@ -850,7 +850,7 @@ struct channel_gk20a *gk20a_open_new_channel(struct gk20a *g, | |||
850 | * an address space bound and allocate a gpfifo and grctx. */ | 850 | * an address space bound and allocate a gpfifo and grctx. */ |
851 | 851 | ||
852 | init_waitqueue_head(&ch->notifier_wq); | 852 | init_waitqueue_head(&ch->notifier_wq); |
853 | init_waitqueue_head(&ch->semaphore_wq); | 853 | nvgpu_cond_init(&ch->semaphore_wq); |
854 | 854 | ||
855 | ch->update_fn = NULL; | 855 | ch->update_fn = NULL; |
856 | ch->update_fn_data = NULL; | 856 | ch->update_fn_data = NULL; |
@@ -2783,7 +2783,8 @@ void gk20a_channel_semaphore_wakeup(struct gk20a *g, bool post_events) | |||
2783 | struct channel_gk20a *c = g->fifo.channel+chid; | 2783 | struct channel_gk20a *c = g->fifo.channel+chid; |
2784 | if (gk20a_channel_get(c)) { | 2784 | if (gk20a_channel_get(c)) { |
2785 | if (atomic_read(&c->bound)) { | 2785 | if (atomic_read(&c->bound)) { |
2786 | wake_up_interruptible_all(&c->semaphore_wq); | 2786 | nvgpu_cond_broadcast_interruptible( |
2787 | &c->semaphore_wq); | ||
2787 | if (post_events) { | 2788 | if (post_events) { |
2788 | if (gk20a_is_channel_marked_as_tsg(c)) { | 2789 | if (gk20a_is_channel_marked_as_tsg(c)) { |
2789 | struct tsg_gk20a *tsg = | 2790 | struct tsg_gk20a *tsg = |