summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2017-11-07 12:40:15 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2017-11-08 01:19:05 -0500
commita51219e526cca5fdee33faf25268662bdd9453cb (patch)
treec5fb8e63a972dd849eb9492104c32cbdc83a41aa
parentac5d3fcf04c9599626fd205aa4e85536390841a1 (diff)
gpu: nvgpu: Store VBIOS version in g->bios
Store VBIOS version in g->bios instead of GPU characteristics. This removes a few Linux dependencies from common code, because GPU characteristics is defined in Linux IOCTL header. JIRA NVGPU-259 Change-Id: I9aab3d37b7ca000edd59c92b8601a96ee288e2bb Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1593684 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
-rw-r--r--drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c3
-rw-r--r--drivers/gpu/nvgpu/common/vbios/bios.c4
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h3
-rw-r--r--drivers/gpu/nvgpu/gp106/bios_gp106.c4
-rw-r--r--drivers/gpu/nvgpu/gp106/mclk_gp106.c4
5 files changed, 12 insertions, 6 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c b/drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c
index 08a831b9..d3961f79 100644
--- a/drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c
+++ b/drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c
@@ -208,6 +208,9 @@ gk20a_ctrl_ioctl_gpu_characteristics(
208 pgpu->impl = g->params.gpu_impl; 208 pgpu->impl = g->params.gpu_impl;
209 pgpu->rev = g->params.gpu_rev; 209 pgpu->rev = g->params.gpu_rev;
210 210
211 pgpu->vbios_version = g->bios.vbios_version;
212 pgpu->vbios_oem_version = g->bios.vbios_oem_version;
213
211 if (request->gpu_characteristics_buf_size > 0) { 214 if (request->gpu_characteristics_buf_size > 0) {
212 size_t write_size = sizeof(*pgpu); 215 size_t write_size = sizeof(*pgpu);
213 216
diff --git a/drivers/gpu/nvgpu/common/vbios/bios.c b/drivers/gpu/nvgpu/common/vbios/bios.c
index 44affbb9..fa700a66 100644
--- a/drivers/gpu/nvgpu/common/vbios/bios.c
+++ b/drivers/gpu/nvgpu/common/vbios/bios.c
@@ -350,8 +350,8 @@ static void nvgpu_bios_parse_biosdata(struct gk20a *g, int offset)
350 biosdata.version, 350 biosdata.version,
351 biosdata.oem_version); 351 biosdata.oem_version);
352 352
353 g->gpu_characteristics.vbios_version = biosdata.version; 353 g->bios.vbios_version = biosdata.version;
354 g->gpu_characteristics.vbios_oem_version = biosdata.oem_version; 354 g->bios.vbios_oem_version = biosdata.oem_version;
355} 355}
356 356
357static void nvgpu_bios_parse_nvinit_ptrs(struct gk20a *g, int offset) 357static void nvgpu_bios_parse_nvinit_ptrs(struct gk20a *g, int offset)
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index 365c7252..96333277 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -1035,6 +1035,9 @@ struct nvgpu_bios_ucode {
1035}; 1035};
1036 1036
1037struct nvgpu_bios { 1037struct nvgpu_bios {
1038 u32 vbios_version;
1039 u8 vbios_oem_version;
1040
1038 u8 *data; 1041 u8 *data;
1039 size_t size; 1042 size_t size;
1040 1043
diff --git a/drivers/gpu/nvgpu/gp106/bios_gp106.c b/drivers/gpu/nvgpu/gp106/bios_gp106.c
index d42f2e14..8511d3c2 100644
--- a/drivers/gpu/nvgpu/gp106/bios_gp106.c
+++ b/drivers/gpu/nvgpu/gp106/bios_gp106.c
@@ -211,9 +211,9 @@ int gp106_bios_init(struct gk20a *g)
211 if (err) 211 if (err)
212 goto free_firmware; 212 goto free_firmware;
213 213
214 if (g->gpu_characteristics.vbios_version < g->vbios_min_version) { 214 if (g->bios.vbios_version < g->vbios_min_version) {
215 nvgpu_err(g, "unsupported VBIOS version %08x", 215 nvgpu_err(g, "unsupported VBIOS version %08x",
216 g->gpu_characteristics.vbios_version); 216 g->bios.vbios_version);
217 err = -EINVAL; 217 err = -EINVAL;
218 goto free_firmware; 218 goto free_firmware;
219 } 219 }
diff --git a/drivers/gpu/nvgpu/gp106/mclk_gp106.c b/drivers/gpu/nvgpu/gp106/mclk_gp106.c
index b7a2c91d..600f9c30 100644
--- a/drivers/gpu/nvgpu/gp106/mclk_gp106.c
+++ b/drivers/gpu/nvgpu/gp106/mclk_gp106.c
@@ -3235,10 +3235,10 @@ int gp106_mclk_init(struct gk20a *g)
3235 g->mem_config_idx = GP106_MEM_CONFIG_GDDR5_PG418; 3235 g->mem_config_idx = GP106_MEM_CONFIG_GDDR5_PG418;
3236 if ((g->pci_vendor_id == PCI_VENDOR_ID_NVIDIA) && 3236 if ((g->pci_vendor_id == PCI_VENDOR_ID_NVIDIA) &&
3237 (g->pci_device_id == 0x1c75) && 3237 (g->pci_device_id == 0x1c75) &&
3238 (g->gpu_characteristics.vbios_version == 0x86065800)) { 3238 (g->bios.vbios_version == 0x86065800)) {
3239 3239
3240 g->mem_config_idx = 3240 g->mem_config_idx =
3241 (g->gpu_characteristics.vbios_oem_version == 0x12) ? 3241 (g->bios.vbios_oem_version == 0x12) ?
3242 GP106_MEM_CONFIG_GDDR5_PG419_8606580012 : 3242 GP106_MEM_CONFIG_GDDR5_PG419_8606580012 :
3243 GP106_MEM_CONFIG_GDDR5_PG419; 3243 GP106_MEM_CONFIG_GDDR5_PG419;
3244 } 3244 }