summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2017-08-21 12:35:16 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-08-22 11:55:13 -0400
commitaf9e70f4d17638d5131e558730d8783255b4779e (patch)
tree11f7b5a54a801e8af4c90d22fdadc617a9dceb52
parent7b654278067dd8c253232950fc1909f5f59572ef (diff)
gpu: nvgpu: Copy vbios_min_version to struct gk20a
Accessing vbios_min_version in gk20a_platform creates an extra dependency to Linux. Copy it to struct gk20a at driver initialization. Change-Id: I9ff5dbeb1fecc6dc44a62f7affc24fd52c2bab26 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1542837 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
-rw-r--r--drivers/gpu/nvgpu/common/linux/driver_common.c1
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h3
-rw-r--r--drivers/gpu/nvgpu/gm206/bios_gm206.c5
3 files changed, 5 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/driver_common.c b/drivers/gpu/nvgpu/common/linux/driver_common.c
index bf372859..d1905c86 100644
--- a/drivers/gpu/nvgpu/common/linux/driver_common.c
+++ b/drivers/gpu/nvgpu/common/linux/driver_common.c
@@ -139,6 +139,7 @@ static void nvgpu_init_vbios_vars(struct gk20a *g)
139 struct gk20a_platform *platform = dev_get_drvdata(dev_from_gk20a(g)); 139 struct gk20a_platform *platform = dev_get_drvdata(dev_from_gk20a(g));
140 140
141 __nvgpu_set_enabled(g, NVGPU_PMU_RUN_PREOS, platform->run_preos); 141 __nvgpu_set_enabled(g, NVGPU_PMU_RUN_PREOS, platform->run_preos);
142 g->vbios_min_version = platform->vbios_min_version;
142} 143}
143 144
144static void nvgpu_init_mm_vars(struct gk20a *g) 145static void nvgpu_init_mm_vars(struct gk20a *g)
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index ab2d0b7f..8f097cac 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -1259,6 +1259,9 @@ struct gk20a {
1259 * from monitoring power, current and voltage */ 1259 * from monitoring power, current and voltage */
1260 bool power_sensor_missing; 1260 bool power_sensor_missing;
1261 1261
1262 /* The minimum VBIOS version supported */
1263 u32 vbios_min_version;
1264
1262 /* memory training sequence and mclk switch scripts */ 1265 /* memory training sequence and mclk switch scripts */
1263 u32 mem_config_idx; 1266 u32 mem_config_idx;
1264 1267
diff --git a/drivers/gpu/nvgpu/gm206/bios_gm206.c b/drivers/gpu/nvgpu/gm206/bios_gm206.c
index 381b3840..7be77ad3 100644
--- a/drivers/gpu/nvgpu/gm206/bios_gm206.c
+++ b/drivers/gpu/nvgpu/gm206/bios_gm206.c
@@ -22,7 +22,6 @@
22#include <nvgpu/enabled.h> 22#include <nvgpu/enabled.h>
23 23
24#include "gk20a/gk20a.h" 24#include "gk20a/gk20a.h"
25#include "gk20a/platform_gk20a.h"
26#include "gm20b/fifo_gm20b.h" 25#include "gm20b/fifo_gm20b.h"
27#include "bios_gm206.h" 26#include "bios_gm206.h"
28#include "gp106/mclk_gp106.h" 27#include "gp106/mclk_gp106.h"
@@ -171,7 +170,6 @@ out:
171int gm206_bios_init(struct gk20a *g) 170int gm206_bios_init(struct gk20a *g)
172{ 171{
173 unsigned int i; 172 unsigned int i;
174 struct gk20a_platform *platform = dev_get_drvdata(dev_from_gk20a(g));
175#ifdef CONFIG_DEBUG_FS 173#ifdef CONFIG_DEBUG_FS
176 struct nvgpu_os_linux *l = nvgpu_os_linux_from_gk20a(g); 174 struct nvgpu_os_linux *l = nvgpu_os_linux_from_gk20a(g);
177 struct dentry *d; 175 struct dentry *d;
@@ -223,8 +221,7 @@ int gm206_bios_init(struct gk20a *g)
223 if (err) 221 if (err)
224 return err; 222 return err;
225 223
226 if (g->gpu_characteristics.vbios_version < 224 if (g->gpu_characteristics.vbios_version < g->vbios_min_version) {
227 platform->vbios_min_version) {
228 nvgpu_err(g, "unsupported VBIOS version %08x", 225 nvgpu_err(g, "unsupported VBIOS version %08x",
229 g->gpu_characteristics.vbios_version); 226 g->gpu_characteristics.vbios_version);
230 return -EINVAL; 227 return -EINVAL;