From a51219e526cca5fdee33faf25268662bdd9453cb Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Tue, 7 Nov 2017 09:40:15 -0800 Subject: 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 Reviewed-on: https://git-master.nvidia.com/r/1593684 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c | 3 +++ drivers/gpu/nvgpu/common/vbios/bios.c | 4 ++-- drivers/gpu/nvgpu/gk20a/gk20a.h | 3 +++ drivers/gpu/nvgpu/gp106/bios_gp106.c | 4 ++-- drivers/gpu/nvgpu/gp106/mclk_gp106.c | 4 ++-- 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( pgpu->impl = g->params.gpu_impl; pgpu->rev = g->params.gpu_rev; + pgpu->vbios_version = g->bios.vbios_version; + pgpu->vbios_oem_version = g->bios.vbios_oem_version; + if (request->gpu_characteristics_buf_size > 0) { size_t write_size = sizeof(*pgpu); 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) biosdata.version, biosdata.oem_version); - g->gpu_characteristics.vbios_version = biosdata.version; - g->gpu_characteristics.vbios_oem_version = biosdata.oem_version; + g->bios.vbios_version = biosdata.version; + g->bios.vbios_oem_version = biosdata.oem_version; } static 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 { }; struct nvgpu_bios { + u32 vbios_version; + u8 vbios_oem_version; + u8 *data; size_t size; 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) if (err) goto free_firmware; - if (g->gpu_characteristics.vbios_version < g->vbios_min_version) { + if (g->bios.vbios_version < g->vbios_min_version) { nvgpu_err(g, "unsupported VBIOS version %08x", - g->gpu_characteristics.vbios_version); + g->bios.vbios_version); err = -EINVAL; goto free_firmware; } 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) g->mem_config_idx = GP106_MEM_CONFIG_GDDR5_PG418; if ((g->pci_vendor_id == PCI_VENDOR_ID_NVIDIA) && (g->pci_device_id == 0x1c75) && - (g->gpu_characteristics.vbios_version == 0x86065800)) { + (g->bios.vbios_version == 0x86065800)) { g->mem_config_idx = - (g->gpu_characteristics.vbios_oem_version == 0x12) ? + (g->bios.vbios_oem_version == 0x12) ? GP106_MEM_CONFIG_GDDR5_PG419_8606580012 : GP106_MEM_CONFIG_GDDR5_PG419; } -- cgit v1.2.2