summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/vgpu/gr_vgpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/vgpu/gr_vgpu.c')
-rw-r--r--drivers/gpu/nvgpu/vgpu/gr_vgpu.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/vgpu/gr_vgpu.c b/drivers/gpu/nvgpu/vgpu/gr_vgpu.c
index 1e633d5f..9d765984 100644
--- a/drivers/gpu/nvgpu/vgpu/gr_vgpu.c
+++ b/drivers/gpu/nvgpu/vgpu/gr_vgpu.c
@@ -1310,3 +1310,30 @@ int vgpu_gr_init_fs_state(struct gk20a *g)
1310 1310
1311 return g->ops.gr.init_sm_id_table(g); 1311 return g->ops.gr.init_sm_id_table(g);
1312} 1312}
1313
1314int vgpu_gr_update_pc_sampling(struct channel_gk20a *ch, bool enable)
1315{
1316 struct tegra_vgpu_cmd_msg msg;
1317 struct tegra_vgpu_channel_update_pc_sampling *p =
1318 &msg.params.update_pc_sampling;
1319 struct gk20a *g;
1320 int err = -EINVAL;
1321
1322 if (!ch->g)
1323 return err;
1324 g = ch->g;
1325 nvgpu_log_fn(g, " ");
1326
1327 msg.cmd = TEGRA_VGPU_CMD_UPDATE_PC_SAMPLING;
1328 msg.handle = vgpu_get_handle(g);
1329 p->handle = ch->virt_ctx;
1330 if (enable)
1331 p->mode = TEGRA_VGPU_ENABLE_SAMPLING;
1332 else
1333 p->mode = TEGRA_VGPU_DISABLE_SAMPLING;
1334
1335 err = vgpu_comm_sendrecv(&msg, sizeof(msg), sizeof(msg));
1336 WARN_ON(err || msg.ret);
1337
1338 return err ? err : msg.ret;
1339}