diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2017-04-14 16:10:37 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-04-19 15:16:07 -0400 |
commit | b5a857210ca07ac5f732d14e0147b70cbc2ba746 (patch) | |
tree | c981d85a19bc44e6ccdd096d08b275c8ba6e28f2 /drivers | |
parent | a9c66768db400a82575a82ecddec71f1d3fd4aba (diff) |
gpu: nvgpu: Move can_elpg to struct gk20a
Copy can_elpg to struct gk20a at probe time, and access it from
gk20a instead of platform_gk20a.
JIRA NVGPU-16
Change-Id: I497f58c17e0be44e3622e49dad2ba44ed78cffbf
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/1463539
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/driver_common.c | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/pmu_gk20a.c | 3 |
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: |