summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a
diff options
context:
space:
mode:
authorDeepak Goyal <dgoyal@nvidia.com>2018-01-18 01:14:47 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2018-01-19 02:40:02 -0500
commite0dbf3a784f6cb1a6e1c41a23123b19ec73b8708 (patch)
treed089cf84f16980034b82c53f2913bcdda452151d /drivers/gpu/nvgpu/gk20a
parenta57258e9b18f2f336457165391572bc477371e94 (diff)
gpu: nvgpu: gv11b: Enable perfmon.
t19x PMU ucode uses RPC mechanism for PERFMON commands. - Declared "pmu_init_perfmon", "pmu_perfmon_start_sampling", "pmu_perfmon_stop_sampling" and "pmu_perfmon_get_samples" in pmu ops to differenciate for chips using RPC & legacy cmd/msg mechanism. - Defined and used PERFMON RPC commands for t19x - INIT - START - STOP - QUERY - Adds RPC handler for PERFMON RPC commands. - For guerying GPU utilization/load, we need to send PERFMON_QUERY RPC command for gv11b. - Enables perfmon for gv11b. Bug 2039013 Change-Id: Ic32326f81d48f11bc772afb8fee2dee6e427a699 Signed-off-by: Deepak Goyal <dgoyal@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1614114 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com> Tested-by: Seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com> 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/gk20a.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index 685976b1..0ce3b50d 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -836,6 +836,10 @@ struct gpu_ops {
836 int (*prepare_ucode)(struct gk20a *g); 836 int (*prepare_ucode)(struct gk20a *g);
837 int (*pmu_setup_hw_and_bootstrap)(struct gk20a *g); 837 int (*pmu_setup_hw_and_bootstrap)(struct gk20a *g);
838 int (*pmu_nsbootstrap)(struct nvgpu_pmu *pmu); 838 int (*pmu_nsbootstrap)(struct nvgpu_pmu *pmu);
839 int (*pmu_init_perfmon)(struct nvgpu_pmu *pmu);
840 int (*pmu_perfmon_start_sampling)(struct nvgpu_pmu *pmu);
841 int (*pmu_perfmon_stop_sampling)(struct nvgpu_pmu *pmu);
842 int (*pmu_perfmon_get_samples_rpc)(struct nvgpu_pmu *pmu);
839 int (*pmu_setup_elpg)(struct gk20a *g); 843 int (*pmu_setup_elpg)(struct gk20a *g);
840 u32 (*pmu_get_queue_head)(u32 i); 844 u32 (*pmu_get_queue_head)(u32 i);
841 u32 (*pmu_get_queue_head_size)(void); 845 u32 (*pmu_get_queue_head_size)(void);