gpu: nvgpu: Use nvgpu_is_enabled() for ASPM

Convert disable_aspm and references to that field to use
nvgpu_is_enabled(NVGPU_SUPPORT_ASPM). Initialize it from
gk20a_platform struct at probe time.

This removes another dependency to struct gk20a_platform.

JIRA NVGPU-259

Change-Id: I32e30160f817ea275aa190dcf86c5fd594138d75
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1590124
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Terje Bergstrom
2017-10-30 13:22:21 -07:00
committed by mobile promotions
parent 25440e63d2
commit 0b0df9eb84
3 changed files with 5 additions and 2 deletions

View File

@@ -141,6 +141,8 @@ static void nvgpu_init_pm_vars(struct gk20a *g)
g->pmu.aelpg_param[2] = APCTRL_MINIMUM_TARGET_SAVING_DEFAULT_US;
g->pmu.aelpg_param[3] = APCTRL_POWER_BREAKEVEN_DEFAULT_US;
g->pmu.aelpg_param[4] = APCTRL_CYCLES_PER_SAMPLE_MAX_DEFAULT;
__nvgpu_set_enabled(g, NVGPU_SUPPORT_ASPM, !platform->disable_aspm);
}
static void nvgpu_init_vbios_vars(struct gk20a *g)

View File

@@ -124,7 +124,6 @@ int gk20a_prepare_poweroff(struct gk20a *g)
int gk20a_finalize_poweron(struct gk20a *g)
{
struct gk20a_platform *platform = gk20a_get_platform(dev_from_gk20a(g));
int err;
#if defined(CONFIG_TEGRA_GK20A_NVHOST) && defined(CONFIG_TEGRA_19x_GPU)
u32 nr_pages;
@@ -312,7 +311,7 @@ int gk20a_finalize_poweron(struct gk20a *g)
if (g->ops.xve.available_speeds) {
u32 speed;
if (platform->disable_aspm && g->ops.xve.disable_aspm)
if (!nvgpu_is_enabled(g, NVGPU_SUPPORT_ASPM) && g->ops.xve.disable_aspm)
g->ops.xve.disable_aspm(g);
g->ops.xve.available_speeds(g, &speed);

View File

@@ -125,6 +125,8 @@ struct gk20a;
/* whether to run PREOS binary on dGPUs */
#define NVGPU_PMU_RUN_PREOS 61
/* set if ASPM is enabled; only makes sense for PCI */
#define NVGPU_SUPPORT_ASPM 62
/*
* Must be greater than the largest bit offset in the above list.
*/