From 7b654278067dd8c253232950fc1909f5f59572ef Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Mon, 21 Aug 2017 09:30:11 -0700 Subject: gpu: nvgpu: Use nvgpu flags for run_preos Accessing run_preos from gk20a_platform causes unnecessary Linux dependency, so copy the flag to abstract flags. Change-Id: I4818fb6735201f36e552c1ff45138a44a3d94db1 Signed-off-by: Terje Bergstrom Reviewed-on: https://git-master.nvidia.com/r/1542836 Reviewed-by: svccoveritychecker Reviewed-by: svc-mobile-coverity Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Sourab Gupta GVS: Gerrit_Virtual_Submit --- drivers/gpu/nvgpu/common/linux/driver_common.c | 8 ++++++++ drivers/gpu/nvgpu/gm206/bios_gm206.c | 3 ++- drivers/gpu/nvgpu/include/nvgpu/enabled.h | 3 +++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/nvgpu/common/linux/driver_common.c b/drivers/gpu/nvgpu/common/linux/driver_common.c index bd1b7611..bf372859 100644 --- a/drivers/gpu/nvgpu/common/linux/driver_common.c +++ b/drivers/gpu/nvgpu/common/linux/driver_common.c @@ -134,6 +134,13 @@ static void nvgpu_init_pm_vars(struct gk20a *g) g->pmu.aelpg_param[4] = APCTRL_CYCLES_PER_SAMPLE_MAX_DEFAULT; } +static void nvgpu_init_vbios_vars(struct gk20a *g) +{ + struct gk20a_platform *platform = dev_get_drvdata(dev_from_gk20a(g)); + + __nvgpu_set_enabled(g, NVGPU_PMU_RUN_PREOS, platform->run_preos); +} + static void nvgpu_init_mm_vars(struct gk20a *g) { struct gk20a_platform *platform = dev_get_drvdata(dev_from_gk20a(g)); @@ -164,6 +171,7 @@ int nvgpu_probe(struct gk20a *g, nvgpu_init_timeout(g); nvgpu_init_timeslice(g); nvgpu_init_pm_vars(g); + nvgpu_init_vbios_vars(g); /* Initialize the platform interface. */ err = platform->probe(dev); diff --git a/drivers/gpu/nvgpu/gm206/bios_gm206.c b/drivers/gpu/nvgpu/gm206/bios_gm206.c index e9473414..381b3840 100644 --- a/drivers/gpu/nvgpu/gm206/bios_gm206.c +++ b/drivers/gpu/nvgpu/gm206/bios_gm206.c @@ -19,6 +19,7 @@ #include #include #include +#include #include "gk20a/gk20a.h" #include "gk20a/platform_gk20a.h" @@ -254,7 +255,7 @@ int gm206_bios_init(struct gk20a *g) return err; } - if (platform->run_preos) { + if (nvgpu_is_enabled(g, NVGPU_PMU_RUN_PREOS)) { err = gm206_bios_preos(g); if (err) { nvgpu_err(g, "pre-os failed"); diff --git a/drivers/gpu/nvgpu/include/nvgpu/enabled.h b/drivers/gpu/nvgpu/include/nvgpu/enabled.h index 5557f31f..354d3e72 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/enabled.h +++ b/drivers/gpu/nvgpu/include/nvgpu/enabled.h @@ -53,6 +53,9 @@ struct gk20a; #define NVGPU_PMU_ZBC_SAVE 50 #define NVGPU_PMU_FECS_BOOTSTRAP_DONE 51 +/* whether to run PREOS binary on dGPUs */ +#define NVGPU_PMU_RUN_PREOS 52 + /* * Must be greater than the largest bit offset in the above list. */ -- cgit v1.2.2