summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/vgpu
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/vgpu')
-rw-r--r--drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c2
-rw-r--r--drivers/gpu/nvgpu/vgpu/gv11b/vgpu_tsg_gv11b.c20
-rw-r--r--drivers/gpu/nvgpu/vgpu/gv11b/vgpu_tsg_gv11b.h2
3 files changed, 22 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c
index 60beab9f..577c8f6e 100644
--- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c
+++ b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c
@@ -380,7 +380,7 @@ static const struct gpu_ops vgpu_gv11b_ops = {
380 .pbdma_acquire_val = gk20a_fifo_pbdma_acquire_val, 380 .pbdma_acquire_val = gk20a_fifo_pbdma_acquire_val,
381 .preempt_channel = vgpu_fifo_preempt_channel, 381 .preempt_channel = vgpu_fifo_preempt_channel,
382 .preempt_tsg = vgpu_fifo_preempt_tsg, 382 .preempt_tsg = vgpu_fifo_preempt_tsg,
383 .enable_tsg = vgpu_enable_tsg, 383 .enable_tsg = vgpu_gv11b_enable_tsg,
384 .disable_tsg = gk20a_disable_tsg, 384 .disable_tsg = gk20a_disable_tsg,
385 .tsg_verify_channel_status = NULL, 385 .tsg_verify_channel_status = NULL,
386 .tsg_verify_status_ctx_reload = NULL, 386 .tsg_verify_status_ctx_reload = NULL,
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_tsg_gv11b.c b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_tsg_gv11b.c
index 367c1299..e42bea1f 100644
--- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_tsg_gv11b.c
+++ b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_tsg_gv11b.c
@@ -58,3 +58,23 @@ int vgpu_gv11b_tsg_bind_channel(struct tsg_gk20a *tsg,
58 58
59 return err; 59 return err;
60} 60}
61
62int vgpu_gv11b_enable_tsg(struct tsg_gk20a *tsg)
63{
64 struct gk20a *g = tsg->g;
65 struct channel_gk20a *ch;
66 struct channel_gk20a *last_ch = NULL;
67
68 nvgpu_rwsem_down_read(&tsg->ch_list_lock);
69 nvgpu_list_for_each_entry(ch, &tsg->ch_list, channel_gk20a, ch_entry) {
70 g->ops.fifo.enable_channel(ch);
71 last_ch = ch;
72 }
73 nvgpu_rwsem_up_read(&tsg->ch_list_lock);
74
75 if (last_ch)
76 g->ops.fifo.ring_channel_doorbell(last_ch);
77
78 return 0;
79}
80
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_tsg_gv11b.h b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_tsg_gv11b.h
index 9ce84170..35eb6802 100644
--- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_tsg_gv11b.h
+++ b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_tsg_gv11b.h
@@ -25,5 +25,5 @@
25 25
26int vgpu_gv11b_tsg_bind_channel(struct tsg_gk20a *tsg, 26int vgpu_gv11b_tsg_bind_channel(struct tsg_gk20a *tsg,
27 struct channel_gk20a *ch); 27 struct channel_gk20a *ch);
28 28int vgpu_gv11b_enable_tsg(struct tsg_gk20a *tsg);
29#endif 29#endif