diff options
author | Mahantesh Kumbar <mkumbar@nvidia.com> | 2016-11-03 05:51:43 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2016-12-20 18:15:46 -0500 |
commit | 75e52218cec5ccfbb8ec61cb8ba5e41f5e5ec7e5 (patch) | |
tree | f931c856ba99844cb2121df36961c4a45326c775 /drivers/gpu/nvgpu/gk20a/pmu_gk20a.h | |
parent | d301c02246b95214b13ee7ac8eeceb34acd0899a (diff) |
gpu: nvgpu: PG engines init/allow/disallow update
- pmu_init_powergating loops & init multiple
PG engines based on PG engines supported
- generalize pg init param HAL to support
multiple PG-engine init based on PG engine
parameter
- HAL's to return supported PG engines on chip &
its sub features of engine.
- Send Allow/Disallow for PG engines which are
enabled & supported.
- Added defines for pg engines
JIRA DNVGPU-71
Change-Id: I236601e092e519a269fcb17c7d1c523a4b51405f
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: http://git-master/r/1247409
(cherry-picked from commit 1c138cc475bac7d3c3fbbd5fb18cfcb2e7fdf67a)
Reviewed-on: http://git-master/r/1269319
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/pmu_gk20a.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/pmu_gk20a.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h index bfb6f117..78652bcb 100644 --- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h | |||
@@ -615,6 +615,10 @@ struct pmu_pg_stats { | |||
615 | #define PMU_PG_IDLE_THRESHOLD 15000 | 615 | #define PMU_PG_IDLE_THRESHOLD 15000 |
616 | #define PMU_PG_POST_POWERUP_IDLE_THRESHOLD 1000000 | 616 | #define PMU_PG_POST_POWERUP_IDLE_THRESHOLD 1000000 |
617 | 617 | ||
618 | #define PMU_PG_ELPG_ENGINE_ID_GRAPHICS (0x00000000) | ||
619 | #define PMU_PG_ELPG_ENGINE_ID_MS (0x00000004) | ||
620 | #define PMU_PG_ELPG_ENGINE_ID_INVALID_ENGINE (0x00000005) | ||
621 | |||
618 | /* state transition : | 622 | /* state transition : |
619 | OFF => [OFF_ON_PENDING optional] => ON_PENDING => ON => OFF | 623 | OFF => [OFF_ON_PENDING optional] => ON_PENDING => ON => OFF |
620 | ON => OFF is always synchronized */ | 624 | ON => OFF is always synchronized */ |
@@ -771,6 +775,9 @@ int gk20a_pmu_cmd_post(struct gk20a *g, struct pmu_cmd *cmd, struct pmu_msg *msg | |||
771 | int gk20a_pmu_enable_elpg(struct gk20a *g); | 775 | int gk20a_pmu_enable_elpg(struct gk20a *g); |
772 | int gk20a_pmu_disable_elpg(struct gk20a *g); | 776 | int gk20a_pmu_disable_elpg(struct gk20a *g); |
773 | 777 | ||
778 | u32 gk20a_pmu_pg_engines_list(struct gk20a *g); | ||
779 | u32 gk20a_pmu_pg_feature_list(struct gk20a *g, u32 pg_engine_id); | ||
780 | |||
774 | void gk20a_pmu_save_zbc(struct gk20a *g, u32 entries); | 781 | void gk20a_pmu_save_zbc(struct gk20a *g, u32 entries); |
775 | 782 | ||
776 | int gk20a_pmu_perfmon_enable(struct gk20a *g, bool enable); | 783 | int gk20a_pmu_perfmon_enable(struct gk20a *g, bool enable); |