summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gp106/hal_gp106.c
diff options
context:
space:
mode:
authorDavid Nieto <dmartineznie@nvidia.com>2017-08-08 15:50:55 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-10-10 15:05:42 -0400
commit7c5cf70268ca038f85686fbdec29729d1a9024c1 (patch)
treebc30b8e724addb367b50fbd1cd4eaa994fa30bb4 /drivers/gpu/nvgpu/gp106/hal_gp106.c
parentbf8dca77aee16b98a89e8ef5491907f2a791f1ff (diff)
gpu: nvgpu: add support for pre-os FW
Pre-os firmware takes care, among others, of the control of FAN till the driver takes over its control. On some GPUs not enabling this FW can lead tp physical board damage, hence it is needed to run this firmware. JIRA: NVGPUGV100-9 Change-Id: I18d54cfd5eb64ecec79c5dae67ac8d5bb1facf36 Signed-off-by: David Nieto <dmartineznie@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1549035 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com> Reviewed-by: Konsta Holtta <kholtta@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gp106/hal_gp106.c')
-rw-r--r--drivers/gpu/nvgpu/gp106/hal_gp106.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gp106/hal_gp106.c b/drivers/gpu/nvgpu/gp106/hal_gp106.c
index 1c423785..8523e7d1 100644
--- a/drivers/gpu/nvgpu/gp106/hal_gp106.c
+++ b/drivers/gpu/nvgpu/gp106/hal_gp106.c
@@ -216,6 +216,10 @@ static int gp106_init_gpu_characteristics(struct gk20a *g)
216} 216}
217 217
218static const struct gpu_ops gp106_ops = { 218static const struct gpu_ops gp106_ops = {
219 .bios = {
220 .init = gp106_bios_init,
221 .preos_wait_for_halt = gp106_bios_preos_wait_for_halt,
222 },
219 .ltc = { 223 .ltc = {
220 .determine_L2_size_bytes = gp10b_determine_L2_size_bytes, 224 .determine_L2_size_bytes = gp10b_determine_L2_size_bytes,
221 .set_zbc_color_entry = gm20b_ltc_set_zbc_color_entry, 225 .set_zbc_color_entry = gm20b_ltc_set_zbc_color_entry,
@@ -695,7 +699,6 @@ static const struct gpu_ops gp106_ops = {
695 }, 699 },
696 .get_litter_value = gp106_get_litter_value, 700 .get_litter_value = gp106_get_litter_value,
697 .chip_init_gpu_characteristics = gp106_init_gpu_characteristics, 701 .chip_init_gpu_characteristics = gp106_init_gpu_characteristics,
698 .bios_init = gp106_bios_init,
699}; 702};
700 703
701int gp106_init_hal(struct gk20a *g) 704int gp106_init_hal(struct gk20a *g)
@@ -705,6 +708,7 @@ int gp106_init_hal(struct gk20a *g)
705 708
706 gk20a_dbg_fn(""); 709 gk20a_dbg_fn("");
707 710
711 gops->bios = gp106_ops.bios;
708 gops->ltc = gp106_ops.ltc; 712 gops->ltc = gp106_ops.ltc;
709 gops->ce2 = gp106_ops.ce2; 713 gops->ce2 = gp106_ops.ce2;
710 gops->gr = gp106_ops.gr; 714 gops->gr = gp106_ops.gr;
@@ -747,7 +751,6 @@ int gp106_init_hal(struct gk20a *g)
747 gops->get_litter_value = gp106_ops.get_litter_value; 751 gops->get_litter_value = gp106_ops.get_litter_value;
748 gops->chip_init_gpu_characteristics = 752 gops->chip_init_gpu_characteristics =
749 gp106_ops.chip_init_gpu_characteristics; 753 gp106_ops.chip_init_gpu_characteristics;
750 gops->bios_init = gp106_ops.bios_init;
751 754
752 __nvgpu_set_enabled(g, NVGPU_GR_USE_DMA_FOR_FW_BOOTSTRAP, true); 755 __nvgpu_set_enabled(g, NVGPU_GR_USE_DMA_FOR_FW_BOOTSTRAP, true);
753 __nvgpu_set_enabled(g, NVGPU_SEC_PRIVSECURITY, true); 756 __nvgpu_set_enabled(g, NVGPU_SEC_PRIVSECURITY, true);