summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/perf
diff options
context:
space:
mode:
authorVaikundanathan S <vaikuns@nvidia.com>2018-08-28 02:28:25 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-09-20 13:50:53 -0400
commitae809fddbe90bcec0d48e1213fa36cc5ba76550d (patch)
treebbafc71a543abf4b02e76290d058719f27f5f3b8 /drivers/gpu/nvgpu/perf
parent85c323c3e89d6e1b624b839c3325ae072952e545 (diff)
gpu:nvgpu: Add GV10x perf event
In case of VFE update, schedule work to set P0 clocks. Added function nvgpu_clk_set_fll_clk_gv10x to update P0 clocks on perf event. Fixed MISRA issues caused by this excluding external functions and MACROs Bug 2331655 Change-Id: Id96c473092ee7f0b651413aefdd4b6f2f59e0b12 Signed-off-by: Vaikundanathan S <vaikuns@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1808014 Reviewed-on: https://git-master.nvidia.com/r/1813881 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/perf')
-rw-r--r--drivers/gpu/nvgpu/perf/perf.c15
-rw-r--r--drivers/gpu/nvgpu/perf/perf.h8
2 files changed, 7 insertions, 16 deletions
diff --git a/drivers/gpu/nvgpu/perf/perf.c b/drivers/gpu/nvgpu/perf/perf.c
index daed6f54..582b2577 100644
--- a/drivers/gpu/nvgpu/perf/perf.c
+++ b/drivers/gpu/nvgpu/perf/perf.c
@@ -67,21 +67,6 @@ static int pmu_handle_perf_event(struct gk20a *g, void *pmu_msg)
67 return 0; 67 return 0;
68} 68}
69 69
70u32 perf_pmu_vfe_load_gv10x(struct gk20a *g)
71{
72 struct nvgpu_pmu *pmu = &g->pmu;
73 struct nv_pmu_rpc_struct_perf_load rpc;
74 u32 status = 0;
75
76 memset(&rpc, 0, sizeof(struct nv_pmu_rpc_struct_perf_load));
77 PMU_RPC_EXECUTE_CPB(status, pmu, PERF, VFE_INVALIDATE, &rpc, 0);
78 if (status) {
79 nvgpu_err(g, "Failed to execute RPC status=0x%x",
80 status);
81 }
82 return status;
83}
84
85u32 perf_pmu_vfe_load(struct gk20a *g) 70u32 perf_pmu_vfe_load(struct gk20a *g)
86{ 71{
87 struct pmu_cmd cmd; 72 struct pmu_cmd cmd;
diff --git a/drivers/gpu/nvgpu/perf/perf.h b/drivers/gpu/nvgpu/perf/perf.h
index 180efb2c..17a9b0e1 100644
--- a/drivers/gpu/nvgpu/perf/perf.h
+++ b/drivers/gpu/nvgpu/perf/perf.h
@@ -65,15 +65,21 @@
65 65
66struct gk20a; 66struct gk20a;
67 67
68struct nvgpu_vfe_invalidate {
69 bool state_change;
70 struct nvgpu_cond wq;
71 struct nvgpu_thread state_task;
72};
73
68struct perf_pmupstate { 74struct perf_pmupstate {
69 struct vfe_vars vfe_varobjs; 75 struct vfe_vars vfe_varobjs;
70 struct vfe_equs vfe_equobjs; 76 struct vfe_equs vfe_equobjs;
71 struct pstates pstatesobjs; 77 struct pstates pstatesobjs;
72 struct obj_volt volt; 78 struct obj_volt volt;
73 struct obj_lwpr lpwr; 79 struct obj_lwpr lpwr;
80 struct nvgpu_vfe_invalidate vfe_init;
74}; 81};
75 82
76u32 perf_pmu_vfe_load(struct gk20a *g); 83u32 perf_pmu_vfe_load(struct gk20a *g);
77u32 perf_pmu_vfe_load_gv10x(struct gk20a *g);
78 84
79#endif 85#endif