diff options
author | Mahantesh Kumbar <mkumbar@nvidia.com> | 2017-01-12 00:15:51 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-01-16 07:53:38 -0500 |
commit | c8d82d465c03b4d7e18ab1ba1bfce6581d2aad6e (patch) | |
tree | 4e4fee5ea1d2bb214a886ca11ab3fd27c339d942 /drivers/gpu/nvgpu/gk20a | |
parent | a177c8e2383f3e7a5b3c8cd5d204e4594bb04875 (diff) |
gpu: nvgpu: HAL to query LPWR feature support
HAL to query LPWR feautre's RPPG/MSCG support
based on current pstate configured.
JIRA DNVGPU-71
Change-Id: I58a34c6dca68e3eb76e222bd781578bf682eac34
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: http://git-master/r/1283916
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/pmu_gk20a.c | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/pmu_gk20a.h | 3 |
3 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index ff8ffc4f..5e2344cf 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h | |||
@@ -610,6 +610,8 @@ struct gpu_ops { | |||
610 | u32 (*pmu_pg_supported_engines_list)(struct gk20a *g); | 610 | u32 (*pmu_pg_supported_engines_list)(struct gk20a *g); |
611 | u32 (*pmu_pg_engines_feature_list)(struct gk20a *g, | 611 | u32 (*pmu_pg_engines_feature_list)(struct gk20a *g, |
612 | u32 pg_engine_id); | 612 | u32 pg_engine_id); |
613 | bool (*pmu_is_lpwr_feature_supported)(struct gk20a *g, | ||
614 | u32 feature_id); | ||
613 | int (*pmu_lpwr_enable_pg)(struct gk20a *g, bool pstate_lock); | 615 | int (*pmu_lpwr_enable_pg)(struct gk20a *g, bool pstate_lock); |
614 | int (*pmu_lpwr_disable_pg)(struct gk20a *g, bool pstate_lock); | 616 | int (*pmu_lpwr_disable_pg)(struct gk20a *g, bool pstate_lock); |
615 | u32 (*pmu_pg_param_post_init)(struct gk20a *g); | 617 | u32 (*pmu_pg_param_post_init)(struct gk20a *g); |
diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c index 1aa423a8..ef6a5943 100644 --- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c | |||
@@ -3302,6 +3302,7 @@ void gk20a_init_pmu_ops(struct gpu_ops *gops) | |||
3302 | gops->pmu.pmu_pg_init_param = NULL; | 3302 | gops->pmu.pmu_pg_init_param = NULL; |
3303 | gops->pmu.pmu_pg_supported_engines_list = gk20a_pmu_pg_engines_list; | 3303 | gops->pmu.pmu_pg_supported_engines_list = gk20a_pmu_pg_engines_list; |
3304 | gops->pmu.pmu_pg_engines_feature_list = gk20a_pmu_pg_feature_list; | 3304 | gops->pmu.pmu_pg_engines_feature_list = gk20a_pmu_pg_feature_list; |
3305 | gops->pmu.pmu_is_lpwr_feature_supported = NULL; | ||
3305 | gops->pmu.pmu_lpwr_enable_pg = NULL; | 3306 | gops->pmu.pmu_lpwr_enable_pg = NULL; |
3306 | gops->pmu.pmu_lpwr_disable_pg = NULL; | 3307 | gops->pmu.pmu_lpwr_disable_pg = NULL; |
3307 | gops->pmu.pmu_pg_param_post_init = NULL; | 3308 | gops->pmu.pmu_pg_param_post_init = NULL; |
diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h index 0a1d2ba3..daa050af 100644 --- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h | |||
@@ -647,6 +647,9 @@ struct pmu_pg_stats { | |||
647 | #define PMU_PG_ELPG_ENGINE_ID_INVALID_ENGINE (0x00000005) | 647 | #define PMU_PG_ELPG_ENGINE_ID_INVALID_ENGINE (0x00000005) |
648 | #define PMU_PG_ELPG_ENGINE_MAX PMU_PG_ELPG_ENGINE_ID_INVALID_ENGINE | 648 | #define PMU_PG_ELPG_ENGINE_MAX PMU_PG_ELPG_ENGINE_ID_INVALID_ENGINE |
649 | 649 | ||
650 | #define PMU_PG_LPWR_FEATURE_RPPG 0x0 | ||
651 | #define PMU_PG_LPWR_FEATURE_MSCG 0x1 | ||
652 | |||
650 | /* state transition : | 653 | /* state transition : |
651 | OFF => [OFF_ON_PENDING optional] => ON_PENDING => ON => OFF | 654 | OFF => [OFF_ON_PENDING optional] => ON_PENDING => ON => OFF |
652 | ON => OFF is always synchronized */ | 655 | ON => OFF is always synchronized */ |