summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h
diff options
context:
space:
mode:
authorMahantesh Kumbar <mkumbar@nvidia.com>2016-11-09 09:08:33 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2016-12-26 01:20:09 -0500
commit98e349ab7eb01ac27e1e18477674294ca80d2093 (patch)
treea1b85feb852037a08ad43c8e92254d3250c6cb44 /drivers/gpu/nvgpu/gk20a/pmu_gk20a.h
parent71fbfdb2b84a4f778f19e44421a66e28e5aadf8d (diff)
gpu: nvgpu: PG statistics update
- PG statistics read support for multiple engines - updated stat_dmem_offset member to array to hold dmem offset of PG engines - PMU allocates memory in DMEM for each PG engine requested, updated gk20a_pmu_get_elpg_residency_gating() to get engine statistics for requested PG engine JIRA DNVGPU-71 Change-Id: I2ddade37f85716f757bf33034dbff816184577eb Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com> Reviewed-on: http://git-master/r/1250506 (cherry picked from commit 68ba7a97d6662b87d0e489365d8afb8e2d237a03) Reviewed-on: http://git-master/r/1270972 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/pmu_gk20a.h')
-rw-r--r--drivers/gpu/nvgpu/gk20a/pmu_gk20a.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h
index 56300dc8..cf4f3b52 100644
--- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h
@@ -618,6 +618,7 @@ struct pmu_pg_stats {
618#define PMU_PG_ELPG_ENGINE_ID_GRAPHICS (0x00000000) 618#define PMU_PG_ELPG_ENGINE_ID_GRAPHICS (0x00000000)
619#define PMU_PG_ELPG_ENGINE_ID_MS (0x00000004) 619#define PMU_PG_ELPG_ENGINE_ID_MS (0x00000004)
620#define PMU_PG_ELPG_ENGINE_ID_INVALID_ENGINE (0x00000005) 620#define PMU_PG_ELPG_ENGINE_ID_INVALID_ENGINE (0x00000005)
621#define PMU_PG_ELPG_ENGINE_MAX PMU_PG_ELPG_ENGINE_ID_INVALID_ENGINE
621 622
622/* state transition : 623/* state transition :
623 OFF => [OFF_ON_PENDING optional] => ON_PENDING => ON => OFF 624 OFF => [OFF_ON_PENDING optional] => ON_PENDING => ON => OFF
@@ -715,7 +716,7 @@ struct pmu_gk20a {
715 716
716 u32 zbc_save_done; 717 u32 zbc_save_done;
717 718
718 u32 stat_dmem_offset; 719 u32 stat_dmem_offset[PMU_PG_ELPG_ENGINE_ID_INVALID_ENGINE];
719 720
720 u32 elpg_stat; 721 u32 elpg_stat;
721 722
@@ -823,7 +824,7 @@ int pmu_wait_message_cond(struct pmu_gk20a *pmu, u32 timeout_ms,
823 u32 *var, u32 val); 824 u32 *var, u32 val);
824void pmu_handle_fecs_boot_acr_msg(struct gk20a *g, struct pmu_msg *msg, 825void pmu_handle_fecs_boot_acr_msg(struct gk20a *g, struct pmu_msg *msg,
825 void *param, u32 handle, u32 status); 826 void *param, u32 handle, u32 status);
826void gk20a_pmu_elpg_statistics(struct gk20a *g, 827void gk20a_pmu_elpg_statistics(struct gk20a *g, u32 pg_engine_id,
827 u32 *ingating_time, u32 *ungating_time, u32 *gating_cnt); 828 u32 *ingating_time, u32 *ungating_time, u32 *gating_cnt);
828int gk20a_pmu_reset(struct gk20a *g); 829int gk20a_pmu_reset(struct gk20a *g);
829int pmu_idle(struct pmu_gk20a *pmu); 830int pmu_idle(struct pmu_gk20a *pmu);