From 69fe763b041ec9309c6ee736d7515402a189d3d5 Mon Sep 17 00:00:00 2001 From: Deepak Nibade Date: Tue, 1 Sep 2020 10:28:59 +0530 Subject: [PATCH] gpu: nvgpu: poweron GPU for regops execution Call gk20a_busy() for regops execution in nvgpu_prof_ioctl_exec_reg_ops since for resident contexts it will directly access the HW. Bug 2510974 Jira NVGPU-5360 Change-Id: I272cf997f0c8a2edd71f88ab6d48471114a32a87 Signed-off-by: Deepak Nibade Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2406796 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Alex Waterman Reviewed-by: mobile promotions GVS: Gerrit_Virtual_Submit Tested-by: mobile promotions --- drivers/gpu/nvgpu/os/linux/ioctl_prof.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/nvgpu/os/linux/ioctl_prof.c b/drivers/gpu/nvgpu/os/linux/ioctl_prof.c index d4fd21723..b9dd69f63 100644 --- a/drivers/gpu/nvgpu/os/linux/ioctl_prof.c +++ b/drivers/gpu/nvgpu/os/linux/ioctl_prof.c @@ -415,6 +415,12 @@ static int nvgpu_prof_ioctl_exec_reg_ops(struct nvgpu_profiler_object_priv *priv return -EINVAL; } + err = gk20a_busy(g); + if (err != 0) { + nvgpu_err(g, "failed to poweron"); + return -EINVAL; + } + if (args->mode == NVGPU_PROFILER_EXEC_REG_OPS_ARG_MODE_CONTINUE_ON_ERROR) { flags |= NVGPU_REG_OP_FLAG_MODE_CONTINUE_ON_ERROR; } else { @@ -494,6 +500,8 @@ static int nvgpu_prof_ioctl_exec_reg_ops(struct nvgpu_profiler_object_priv *priv "REG_OPS for handle %u complete: count=%u mode=%u flags=0x%x err=%d", prof->prof_handle, args->count, args->mode, args->flags, err); + gk20a_idle(g); + return err; }