From 301965fb77b3dc97445957712b82ce430eaa17e3 Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Tue, 25 Apr 2017 13:09:47 -0700 Subject: gpu: nvgpu: Use nvgpu_cond in channel worker Change the channel worker to use nvgpu_cond instead of Linux wait queue. JIRA NVGPU-14 Change-Id: Iac856dca2acfa80065f5d2fd542cd2a6278333a4 Signed-off-by: Terje Bergstrom Reviewed-on: http://git-master/r/1469850 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Lakshmanan M --- drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.c') diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c index 0d615d65..65dc1c72 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c @@ -1689,7 +1689,7 @@ static int __gk20a_channel_worker_wakeup(struct gk20a *g) */ put = atomic_inc_return(&g->channel_worker.put); - wake_up(&g->channel_worker.wq); + nvgpu_cond_signal(&g->channel_worker.wq); return put; } @@ -1783,8 +1783,8 @@ static int gk20a_channel_poll_worker(void *arg) while (!nvgpu_thread_should_stop(&worker->poll_task)) { bool got_events; - got_events = wait_event_timeout( - worker->wq, + got_events = NVGPU_COND_WAIT( + &worker->wq, __gk20a_channel_worker_pending(g, get), timeout) > 0; @@ -1808,7 +1808,7 @@ int nvgpu_channel_worker_init(struct gk20a *g) char thread_name[64]; atomic_set(&g->channel_worker.put, 0); - init_waitqueue_head(&g->channel_worker.wq); + nvgpu_cond_init(&g->channel_worker.wq); nvgpu_init_list_node(&g->channel_worker.items); nvgpu_spinlock_init(&g->channel_worker.items_lock); snprintf(thread_name, sizeof(thread_name), -- cgit v1.2.2