summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/include
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/include')
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/pmu.h24
1 files changed, 23 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/pmu.h b/drivers/gpu/nvgpu/include/nvgpu/pmu.h
index f447e910..a4d1e0ee 100644
--- a/drivers/gpu/nvgpu/include/nvgpu/pmu.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/pmu.h
@@ -335,6 +335,15 @@ struct nvgpu_pmu {
335 struct nvgpu_firmware *fw; 335 struct nvgpu_firmware *fw;
336}; 336};
337 337
338/*PG defines used by nvpgu-pmu*/
339struct pmu_pg_stats_data {
340 u32 gating_cnt;
341 u32 ingating_time;
342 u32 ungating_time;
343 u32 avg_entry_latency_us;
344 u32 avg_exit_latency_us;
345};
346
338/* PMU IPC Methods */ 347/* PMU IPC Methods */
339void nvgpu_pmu_seq_init(struct nvgpu_pmu *pmu); 348void nvgpu_pmu_seq_init(struct nvgpu_pmu *pmu);
340 349
@@ -361,7 +370,20 @@ int nvgpu_pmu_handle_therm_event(struct nvgpu_pmu *pmu,
361 struct nv_pmu_therm_msg *msg); 370 struct nv_pmu_therm_msg *msg);
362 371
363/* PMU init */ 372/* PMU init */
373int nvgpu_init_pmu_support(struct gk20a *g);
374int nvgpu_pmu_destroy(struct gk20a *g);
364int nvgpu_pmu_process_init_msg(struct nvgpu_pmu *pmu, 375int nvgpu_pmu_process_init_msg(struct nvgpu_pmu *pmu,
365 struct pmu_msg *msg); 376 struct pmu_msg *msg);
377
378void nvgpu_pmu_state_change(struct gk20a *g, u32 pmu_state,
379 bool post_change_event);
380
381/* PG */
382int nvgpu_pmu_init_powergating(struct gk20a *g);
383int nvgpu_pmu_init_bind_fecs(struct gk20a *g);
384void nvgpu_pmu_setup_hw_load_zbc(struct gk20a *g);
385
386int nvgpu_pmu_get_pg_stats(struct gk20a *g, u32 pg_engine_id,
387 struct pmu_pg_stats_data *pg_stat_data);
366 388
367#endif /* __NVGPU_PMU_H__ */ 389#endif /* __NVGPU_PMU_H__ */