diff options
author | Mahantesh Kumbar <mkumbar@nvidia.com> | 2016-11-09 09:08:33 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2016-12-26 01:20:09 -0500 |
commit | 98e349ab7eb01ac27e1e18477674294ca80d2093 (patch) | |
tree | a1b85feb852037a08ad43c8e92254d3250c6cb44 /drivers/gpu/nvgpu/gk20a/pmu_gk20a.h | |
parent | 71fbfdb2b84a4f778f19e44421a66e28e5aadf8d (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.h | 5 |
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); |
824 | void pmu_handle_fecs_boot_acr_msg(struct gk20a *g, struct pmu_msg *msg, | 825 | void 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); |
826 | void gk20a_pmu_elpg_statistics(struct gk20a *g, | 827 | void 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); |
828 | int gk20a_pmu_reset(struct gk20a *g); | 829 | int gk20a_pmu_reset(struct gk20a *g); |
829 | int pmu_idle(struct pmu_gk20a *pmu); | 830 | int pmu_idle(struct pmu_gk20a *pmu); |