summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/linux/vgpu/tsg_vgpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/vgpu/tsg_vgpu.c')
-rw-r--r--drivers/gpu/nvgpu/common/linux/vgpu/tsg_vgpu.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/tsg_vgpu.c b/drivers/gpu/nvgpu/common/linux/vgpu/tsg_vgpu.c
index c40e6f90..06f52177 100644
--- a/drivers/gpu/nvgpu/common/linux/vgpu/tsg_vgpu.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/tsg_vgpu.c
@@ -28,7 +28,7 @@
28int vgpu_tsg_open(struct tsg_gk20a *tsg) 28int vgpu_tsg_open(struct tsg_gk20a *tsg)
29{ 29{
30 struct tegra_vgpu_cmd_msg msg = {}; 30 struct tegra_vgpu_cmd_msg msg = {};
31 struct tegra_vgpu_tsg_open_params *p = 31 struct tegra_vgpu_tsg_open_rel_params *p =
32 &msg.params.tsg_open; 32 &msg.params.tsg_open;
33 int err; 33 int err;
34 34
@@ -47,6 +47,26 @@ int vgpu_tsg_open(struct tsg_gk20a *tsg)
47 return err; 47 return err;
48} 48}
49 49
50void vgpu_tsg_release(struct tsg_gk20a *tsg)
51{
52 struct tegra_vgpu_cmd_msg msg = {};
53 struct tegra_vgpu_tsg_open_rel_params *p =
54 &msg.params.tsg_release;
55 int err;
56
57 gk20a_dbg_fn("");
58
59 msg.cmd = TEGRA_VGPU_CMD_TSG_RELEASE;
60 msg.handle = vgpu_get_handle(tsg->g);
61 p->tsg_id = tsg->tsgid;
62 err = vgpu_comm_sendrecv(&msg, sizeof(msg), sizeof(msg));
63 err = err ? err : msg.ret;
64 if (err) {
65 nvgpu_err(tsg->g,
66 "vgpu_tsg_release failed, tsgid %d", tsg->tsgid);
67 }
68}
69
50int vgpu_enable_tsg(struct tsg_gk20a *tsg) 70int vgpu_enable_tsg(struct tsg_gk20a *tsg)
51{ 71{
52 struct gk20a *g = tsg->g; 72 struct gk20a *g = tsg->g;