summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/nvgpu/common/linux/driver_common.c2
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h1
-rw-r--r--drivers/gpu/nvgpu/gk20a/pmu_gk20a.c3
3 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/driver_common.c b/drivers/gpu/nvgpu/common/linux/driver_common.c
index af26996b..67584f95 100644
--- a/drivers/gpu/nvgpu/common/linux/driver_common.c
+++ b/drivers/gpu/nvgpu/common/linux/driver_common.c
@@ -102,6 +102,8 @@ static void nvgpu_init_pm_vars(struct gk20a *g)
102 nvgpu_platform_is_silicon(g) ? platform->enable_aelpg : false; 102 nvgpu_platform_is_silicon(g) ? platform->enable_aelpg : false;
103 g->mscg_enabled = 103 g->mscg_enabled =
104 nvgpu_platform_is_silicon(g) ? platform->enable_mscg : false; 104 nvgpu_platform_is_silicon(g) ? platform->enable_mscg : false;
105 g->can_elpg =
106 nvgpu_platform_is_silicon(g) ? platform->can_elpg : false;
105 107
106 /* set default values to aelpg parameters */ 108 /* set default values to aelpg parameters */
107 g->pmu.aelpg_param[0] = APCTRL_SAMPLING_PERIOD_PG_DEFAULT_US; 109 g->pmu.aelpg_param[0] = APCTRL_SAMPLING_PERIOD_PG_DEFAULT_US;
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index 9860910c..76251000 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -981,6 +981,7 @@ struct gk20a {
981 bool elcg_enabled; 981 bool elcg_enabled;
982 bool elpg_enabled; 982 bool elpg_enabled;
983 bool aelpg_enabled; 983 bool aelpg_enabled;
984 bool can_elpg;
984 bool mscg_enabled; 985 bool mscg_enabled;
985 bool forced_idle; 986 bool forced_idle;
986 bool forced_reset; 987 bool forced_reset;
diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
index 0ca8851f..257d9f7c 100644
--- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c
@@ -3326,12 +3326,11 @@ void pmu_setup_hw(struct work_struct *work)
3326{ 3326{
3327 struct pmu_gk20a *pmu = container_of(work, struct pmu_gk20a, pg_init); 3327 struct pmu_gk20a *pmu = container_of(work, struct pmu_gk20a, pg_init);
3328 struct gk20a *g = gk20a_from_pmu(pmu); 3328 struct gk20a *g = gk20a_from_pmu(pmu);
3329 struct gk20a_platform *platform = dev_get_drvdata(g->dev);
3330 3329
3331 switch (pmu->pmu_state) { 3330 switch (pmu->pmu_state) {
3332 case PMU_STATE_INIT_RECEIVED: 3331 case PMU_STATE_INIT_RECEIVED:
3333 gk20a_dbg_pmu("pmu starting"); 3332 gk20a_dbg_pmu("pmu starting");
3334 if (platform->can_elpg) 3333 if (g->can_elpg)
3335 pmu_init_powergating(g); 3334 pmu_init_powergating(g);
3336 break; 3335 break;
3337 case PMU_STATE_ELPG_BOOTED: 3336 case PMU_STATE_ELPG_BOOTED: