diff options
author | Debarshi Dutta <ddutta@nvidia.com> | 2017-10-10 01:15:54 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-10-16 16:35:04 -0400 |
commit | 61b263d83222cd5d2ff3d2d5d699b07ebdf44288 (patch) | |
tree | 07ef35fb427dc2f93741ed9193673b6da2872bb7 /drivers/gpu/nvgpu/gk20a | |
parent | 30b9cbe35a2a0adc4e3a65b033dc0f61046783ea (diff) |
gpu: nvgpu: replace wait_queue_head_t with nvgpu_cond
Replace existing usages of wait_queue_head_t with struct nvgpu_cond and
using the corresponding APIs in order to reduce Linux dependencies in NVGPU.
JIRA NVGPU-205
Change-Id: I85850369c3c47d3e1704e4171b1d172361842423
Signed-off-by: Debarshi Dutta <ddutta@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1575778
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.h | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.c | 12 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c | 6 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/sched_gk20a.c | 10 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/sched_gk20a.h | 2 |
6 files changed, 17 insertions, 17 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h index 9c0d22d2..4b1cb351 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h | |||
@@ -126,7 +126,7 @@ struct gk20a_event_id_data { | |||
126 | 126 | ||
127 | bool event_posted; | 127 | bool event_posted; |
128 | 128 | ||
129 | wait_queue_head_t event_id_wq; | 129 | struct nvgpu_cond event_id_wq; |
130 | struct nvgpu_mutex lock; | 130 | struct nvgpu_mutex lock; |
131 | struct nvgpu_list_node event_id_node; | 131 | struct nvgpu_list_node event_id_node; |
132 | }; | 132 | }; |
diff --git a/drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.c b/drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.c index 9977c5a1..fb33de23 100644 --- a/drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.c | |||
@@ -53,7 +53,7 @@ struct gk20a_ctxsw_dev { | |||
53 | struct nvgpu_ctxsw_trace_entry *ents; | 53 | struct nvgpu_ctxsw_trace_entry *ents; |
54 | struct nvgpu_ctxsw_trace_filter filter; | 54 | struct nvgpu_ctxsw_trace_filter filter; |
55 | bool write_enabled; | 55 | bool write_enabled; |
56 | wait_queue_head_t readout_wq; | 56 | struct nvgpu_cond readout_wq; |
57 | size_t size; | 57 | size_t size; |
58 | u32 num_ents; | 58 | u32 num_ents; |
59 | 59 | ||
@@ -100,8 +100,8 @@ ssize_t gk20a_ctxsw_dev_read(struct file *filp, char __user *buf, size_t size, | |||
100 | nvgpu_mutex_release(&dev->write_lock); | 100 | nvgpu_mutex_release(&dev->write_lock); |
101 | if (filp->f_flags & O_NONBLOCK) | 101 | if (filp->f_flags & O_NONBLOCK) |
102 | return -EAGAIN; | 102 | return -EAGAIN; |
103 | err = wait_event_interruptible(dev->readout_wq, | 103 | err = NVGPU_COND_WAIT_INTERRUPTIBLE(&dev->readout_wq, |
104 | !ring_is_empty(hdr)); | 104 | !ring_is_empty(hdr), 0); |
105 | if (err) | 105 | if (err) |
106 | return err; | 106 | return err; |
107 | nvgpu_mutex_acquire(&dev->write_lock); | 107 | nvgpu_mutex_acquire(&dev->write_lock); |
@@ -436,7 +436,7 @@ unsigned int gk20a_ctxsw_dev_poll(struct file *filp, poll_table *wait) | |||
436 | gk20a_dbg(gpu_dbg_fn|gpu_dbg_ctxsw, ""); | 436 | gk20a_dbg(gpu_dbg_fn|gpu_dbg_ctxsw, ""); |
437 | 437 | ||
438 | nvgpu_mutex_acquire(&dev->write_lock); | 438 | nvgpu_mutex_acquire(&dev->write_lock); |
439 | poll_wait(filp, &dev->readout_wq, wait); | 439 | poll_wait(filp, &dev->readout_wq.wq, wait); |
440 | if (!ring_is_empty(hdr)) | 440 | if (!ring_is_empty(hdr)) |
441 | mask |= POLLIN | POLLRDNORM; | 441 | mask |= POLLIN | POLLRDNORM; |
442 | nvgpu_mutex_release(&dev->write_lock); | 442 | nvgpu_mutex_release(&dev->write_lock); |
@@ -503,7 +503,7 @@ static int gk20a_ctxsw_init_devs(struct gk20a *g) | |||
503 | dev->g = g; | 503 | dev->g = g; |
504 | dev->hdr = NULL; | 504 | dev->hdr = NULL; |
505 | dev->write_enabled = false; | 505 | dev->write_enabled = false; |
506 | init_waitqueue_head(&dev->readout_wq); | 506 | nvgpu_cond_init(&dev->readout_wq); |
507 | err = nvgpu_mutex_init(&dev->write_lock); | 507 | err = nvgpu_mutex_init(&dev->write_lock); |
508 | if (err) | 508 | if (err) |
509 | return err; | 509 | return err; |
@@ -683,7 +683,7 @@ void gk20a_ctxsw_trace_wake_up(struct gk20a *g, int vmid) | |||
683 | return; | 683 | return; |
684 | 684 | ||
685 | dev = &g->ctxsw_trace->devs[vmid]; | 685 | dev = &g->ctxsw_trace->devs[vmid]; |
686 | wake_up_interruptible(&dev->readout_wq); | 686 | nvgpu_cond_signal_interruptible(&dev->readout_wq); |
687 | } | 687 | } |
688 | 688 | ||
689 | void gk20a_ctxsw_trace_channel_reset(struct gk20a *g, struct channel_gk20a *ch) | 689 | void gk20a_ctxsw_trace_channel_reset(struct gk20a *g, struct channel_gk20a *ch) |
diff --git a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c index c2885807..135cb1e9 100644 --- a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c | |||
@@ -158,7 +158,7 @@ static int gk20a_dbg_gpu_do_dev_open(struct inode *inode, | |||
158 | dbg_session->is_pg_disabled = false; | 158 | dbg_session->is_pg_disabled = false; |
159 | dbg_session->is_timeout_disabled = false; | 159 | dbg_session->is_timeout_disabled = false; |
160 | 160 | ||
161 | init_waitqueue_head(&dbg_session->dbg_events.wait_queue); | 161 | nvgpu_cond_init(&dbg_session->dbg_events.wait_queue); |
162 | nvgpu_init_list_node(&dbg_session->ch_list); | 162 | nvgpu_init_list_node(&dbg_session->ch_list); |
163 | err = nvgpu_mutex_init(&dbg_session->ch_list_lock); | 163 | err = nvgpu_mutex_init(&dbg_session->ch_list_lock); |
164 | if (err) | 164 | if (err) |
@@ -286,7 +286,7 @@ unsigned int gk20a_dbg_gpu_dev_poll(struct file *filep, poll_table *wait) | |||
286 | 286 | ||
287 | gk20a_dbg(gpu_dbg_fn | gpu_dbg_gpu_dbg, ""); | 287 | gk20a_dbg(gpu_dbg_fn | gpu_dbg_gpu_dbg, ""); |
288 | 288 | ||
289 | poll_wait(filep, &dbg_s->dbg_events.wait_queue, wait); | 289 | poll_wait(filep, &dbg_s->dbg_events.wait_queue.wq, wait); |
290 | 290 | ||
291 | gk20a_dbg_session_nvgpu_mutex_acquire(dbg_s); | 291 | gk20a_dbg_session_nvgpu_mutex_acquire(dbg_s); |
292 | 292 | ||
@@ -337,7 +337,7 @@ void gk20a_dbg_gpu_post_events(struct channel_gk20a *ch) | |||
337 | 337 | ||
338 | dbg_s->dbg_events.num_pending_events++; | 338 | dbg_s->dbg_events.num_pending_events++; |
339 | 339 | ||
340 | wake_up_interruptible_all(&dbg_s->dbg_events.wait_queue); | 340 | nvgpu_cond_broadcast_interruptible(&dbg_s->dbg_events.wait_queue); |
341 | } | 341 | } |
342 | } | 342 | } |
343 | 343 | ||
diff --git a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h index 062674fb..1a6de3a8 100644 --- a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.h | |||
@@ -41,7 +41,7 @@ struct channel_gk20a * | |||
41 | nvgpu_dbg_gpu_get_session_channel(struct dbg_session_gk20a *dbg_s); | 41 | nvgpu_dbg_gpu_get_session_channel(struct dbg_session_gk20a *dbg_s); |
42 | 42 | ||
43 | struct dbg_gpu_session_events { | 43 | struct dbg_gpu_session_events { |
44 | wait_queue_head_t wait_queue; | 44 | struct nvgpu_cond wait_queue; |
45 | bool events_enabled; | 45 | bool events_enabled; |
46 | int num_pending_events; | 46 | int num_pending_events; |
47 | }; | 47 | }; |
diff --git a/drivers/gpu/nvgpu/gk20a/sched_gk20a.c b/drivers/gpu/nvgpu/gk20a/sched_gk20a.c index d635b43b..a77536af 100644 --- a/drivers/gpu/nvgpu/gk20a/sched_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/sched_gk20a.c | |||
@@ -58,8 +58,8 @@ ssize_t gk20a_sched_dev_read(struct file *filp, char __user *buf, | |||
58 | nvgpu_mutex_release(&sched->status_lock); | 58 | nvgpu_mutex_release(&sched->status_lock); |
59 | if (filp->f_flags & O_NONBLOCK) | 59 | if (filp->f_flags & O_NONBLOCK) |
60 | return -EAGAIN; | 60 | return -EAGAIN; |
61 | err = wait_event_interruptible(sched->readout_wq, | 61 | err = NVGPU_COND_WAIT_INTERRUPTIBLE(&sched->readout_wq, |
62 | sched->status); | 62 | sched->status, 0); |
63 | if (err) | 63 | if (err) |
64 | return err; | 64 | return err; |
65 | nvgpu_mutex_acquire(&sched->status_lock); | 65 | nvgpu_mutex_acquire(&sched->status_lock); |
@@ -88,7 +88,7 @@ unsigned int gk20a_sched_dev_poll(struct file *filp, poll_table *wait) | |||
88 | gk20a_dbg(gpu_dbg_fn | gpu_dbg_sched, ""); | 88 | gk20a_dbg(gpu_dbg_fn | gpu_dbg_sched, ""); |
89 | 89 | ||
90 | nvgpu_mutex_acquire(&sched->status_lock); | 90 | nvgpu_mutex_acquire(&sched->status_lock); |
91 | poll_wait(filp, &sched->readout_wq, wait); | 91 | poll_wait(filp, &sched->readout_wq.wq, wait); |
92 | if (sched->status) | 92 | if (sched->status) |
93 | mask |= POLLIN | POLLRDNORM; | 93 | mask |= POLLIN | POLLRDNORM; |
94 | nvgpu_mutex_release(&sched->status_lock); | 94 | nvgpu_mutex_release(&sched->status_lock); |
@@ -552,7 +552,7 @@ void gk20a_sched_ctrl_tsg_added(struct gk20a *g, struct tsg_gk20a *tsg) | |||
552 | NVGPU_SCHED_SET(tsg->tsgid, sched->recent_tsg_bitmap); | 552 | NVGPU_SCHED_SET(tsg->tsgid, sched->recent_tsg_bitmap); |
553 | sched->status |= NVGPU_SCHED_STATUS_TSG_OPEN; | 553 | sched->status |= NVGPU_SCHED_STATUS_TSG_OPEN; |
554 | nvgpu_mutex_release(&sched->status_lock); | 554 | nvgpu_mutex_release(&sched->status_lock); |
555 | wake_up_interruptible(&sched->readout_wq); | 555 | nvgpu_cond_signal_interruptible(&sched->readout_wq); |
556 | } | 556 | } |
557 | 557 | ||
558 | void gk20a_sched_ctrl_tsg_removed(struct gk20a *g, struct tsg_gk20a *tsg) | 558 | void gk20a_sched_ctrl_tsg_removed(struct gk20a *g, struct tsg_gk20a *tsg) |
@@ -609,7 +609,7 @@ int gk20a_sched_ctrl_init(struct gk20a *g) | |||
609 | goto free_recent; | 609 | goto free_recent; |
610 | } | 610 | } |
611 | 611 | ||
612 | init_waitqueue_head(&sched->readout_wq); | 612 | nvgpu_cond_init(&sched->readout_wq); |
613 | 613 | ||
614 | err = nvgpu_mutex_init(&sched->status_lock); | 614 | err = nvgpu_mutex_init(&sched->status_lock); |
615 | if (err) | 615 | if (err) |
diff --git a/drivers/gpu/nvgpu/gk20a/sched_gk20a.h b/drivers/gpu/nvgpu/gk20a/sched_gk20a.h index a54553c1..0cdb9914 100644 --- a/drivers/gpu/nvgpu/gk20a/sched_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/sched_gk20a.h | |||
@@ -44,7 +44,7 @@ struct gk20a_sched_ctrl { | |||
44 | u64 *recent_tsg_bitmap; | 44 | u64 *recent_tsg_bitmap; |
45 | u64 *ref_tsg_bitmap; | 45 | u64 *ref_tsg_bitmap; |
46 | 46 | ||
47 | wait_queue_head_t readout_wq; | 47 | struct nvgpu_cond readout_wq; |
48 | }; | 48 | }; |
49 | 49 | ||
50 | int gk20a_sched_dev_release(struct inode *inode, struct file *filp); | 50 | int gk20a_sched_dev_release(struct inode *inode, struct file *filp); |