summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2017-08-21 12:30:11 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-08-22 11:55:06 -0400
commit7b654278067dd8c253232950fc1909f5f59572ef (patch)
tree563c677e4593fe983f1eba6fef7e2db6734b0597
parent81868a187fa3b217368206f17b19309846e8e7fb (diff)
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 <tbergstrom@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1542836 Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Sourab Gupta <sourabg@nvidia.com> GVS: Gerrit_Virtual_Submit
-rw-r--r--drivers/gpu/nvgpu/common/linux/driver_common.c8
-rw-r--r--drivers/gpu/nvgpu/gm206/bios_gm206.c3
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/enabled.h3
3 files changed, 13 insertions, 1 deletions
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)
134 g->pmu.aelpg_param[4] = APCTRL_CYCLES_PER_SAMPLE_MAX_DEFAULT; 134 g->pmu.aelpg_param[4] = APCTRL_CYCLES_PER_SAMPLE_MAX_DEFAULT;
135} 135}
136 136
137static void nvgpu_init_vbios_vars(struct gk20a *g)
138{
139 struct gk20a_platform *platform = dev_get_drvdata(dev_from_gk20a(g));
140
141 __nvgpu_set_enabled(g, NVGPU_PMU_RUN_PREOS, platform->run_preos);
142}
143
137static void nvgpu_init_mm_vars(struct gk20a *g) 144static void nvgpu_init_mm_vars(struct gk20a *g)
138{ 145{
139 struct gk20a_platform *platform = dev_get_drvdata(dev_from_gk20a(g)); 146 struct gk20a_platform *platform = dev_get_drvdata(dev_from_gk20a(g));
@@ -164,6 +171,7 @@ int nvgpu_probe(struct gk20a *g,
164 nvgpu_init_timeout(g); 171 nvgpu_init_timeout(g);
165 nvgpu_init_timeslice(g); 172 nvgpu_init_timeslice(g);
166 nvgpu_init_pm_vars(g); 173 nvgpu_init_pm_vars(g);
174 nvgpu_init_vbios_vars(g);
167 175
168 /* Initialize the platform interface. */ 176 /* Initialize the platform interface. */
169 err = platform->probe(dev); 177 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 @@
19#include <nvgpu/timers.h> 19#include <nvgpu/timers.h>
20#include <nvgpu/firmware.h> 20#include <nvgpu/firmware.h>
21#include <nvgpu/falcon.h> 21#include <nvgpu/falcon.h>
22#include <nvgpu/enabled.h>
22 23
23#include "gk20a/gk20a.h" 24#include "gk20a/gk20a.h"
24#include "gk20a/platform_gk20a.h" 25#include "gk20a/platform_gk20a.h"
@@ -254,7 +255,7 @@ int gm206_bios_init(struct gk20a *g)
254 return err; 255 return err;
255 } 256 }
256 257
257 if (platform->run_preos) { 258 if (nvgpu_is_enabled(g, NVGPU_PMU_RUN_PREOS)) {
258 err = gm206_bios_preos(g); 259 err = gm206_bios_preos(g);
259 if (err) { 260 if (err) {
260 nvgpu_err(g, "pre-os failed"); 261 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;
53#define NVGPU_PMU_ZBC_SAVE 50 53#define NVGPU_PMU_ZBC_SAVE 50
54#define NVGPU_PMU_FECS_BOOTSTRAP_DONE 51 54#define NVGPU_PMU_FECS_BOOTSTRAP_DONE 51
55 55
56/* whether to run PREOS binary on dGPUs */
57#define NVGPU_PMU_RUN_PREOS 52
58
56/* 59/*
57 * Must be greater than the largest bit offset in the above list. 60 * Must be greater than the largest bit offset in the above list.
58 */ 61 */