diff options
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/gp106/pmu_gp106.c | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp106/pmu_mclk_gp106.c | 9 |
2 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gp106/pmu_gp106.c b/drivers/gpu/nvgpu/gp106/pmu_gp106.c index 56f1e194..632023ba 100644 --- a/drivers/gpu/nvgpu/gp106/pmu_gp106.c +++ b/drivers/gpu/nvgpu/gp106/pmu_gp106.c | |||
@@ -332,6 +332,7 @@ void gp106_init_pmu_ops(struct gpu_ops *gops) | |||
332 | gops->pmu.pmu_pg_param_post_init = nvgpu_lpwr_post_init; | 332 | gops->pmu.pmu_pg_param_post_init = nvgpu_lpwr_post_init; |
333 | gops->pmu.dump_secure_fuses = NULL; | 333 | gops->pmu.dump_secure_fuses = NULL; |
334 | gops->pmu.mclk_init = gp106_mclk_init; | 334 | gops->pmu.mclk_init = gp106_mclk_init; |
335 | gops->pmu.mclk_change = gp106_mclk_change; | ||
335 | gops->pmu.mclk_deinit = gp106_mclk_deinit; | 336 | gops->pmu.mclk_deinit = gp106_mclk_deinit; |
336 | gops->pmu.is_pmu_supported = gp106_is_pmu_supported; | 337 | gops->pmu.is_pmu_supported = gp106_is_pmu_supported; |
337 | gops->pmu.reset_engine = gp106_pmu_engine_reset; | 338 | gops->pmu.reset_engine = gp106_pmu_engine_reset; |
diff --git a/drivers/gpu/nvgpu/gp106/pmu_mclk_gp106.c b/drivers/gpu/nvgpu/gp106/pmu_mclk_gp106.c index c510a8d7..2ca29750 100644 --- a/drivers/gpu/nvgpu/gp106/pmu_mclk_gp106.c +++ b/drivers/gpu/nvgpu/gp106/pmu_mclk_gp106.c | |||
@@ -2725,6 +2725,14 @@ int gp106_mclk_init(struct gk20a *g) | |||
2725 | 2725 | ||
2726 | mclk->speed = GP106_MCLK_LOW_SPEED; /* Value from Devinit */ | 2726 | mclk->speed = GP106_MCLK_LOW_SPEED; /* Value from Devinit */ |
2727 | 2727 | ||
2728 | /* Find out which memory configuration to use */ | ||
2729 | g->mem_config_idx = GP106_MEM_CONFIG_GDDR5_PG418; | ||
2730 | if ((g->pci_vendor_id == PCI_VENDOR_ID_NVIDIA) && | ||
2731 | (g->pci_device_id == 0x1c75) && | ||
2732 | (g->gpu_characteristics.vbios_version == 0x86065800)) { | ||
2733 | g->mem_config_idx = GP106_MEM_CONFIG_GDDR5_PG419; | ||
2734 | } | ||
2735 | |||
2728 | /* Parse VBIOS */ | 2736 | /* Parse VBIOS */ |
2729 | status = mclk_get_memclk_table(g); | 2737 | status = mclk_get_memclk_table(g); |
2730 | if (status < 0) { | 2738 | if (status < 0) { |
@@ -2791,6 +2799,7 @@ int gp106_mclk_change(struct gk20a *g, u16 val) | |||
2791 | u32 seqdesc; | 2799 | u32 seqdesc; |
2792 | int status = 0; | 2800 | int status = 0; |
2793 | struct memory_config *m = &mem_config[g->mem_config_idx]; | 2801 | struct memory_config *m = &mem_config[g->mem_config_idx]; |
2802 | |||
2794 | u32 seq_completion_status = ~0x0; | 2803 | u32 seq_completion_status = ~0x0; |
2795 | u8 *seq_script_ptr = NULL; | 2804 | u8 *seq_script_ptr = NULL; |
2796 | size_t seq_script_size = 0; | 2805 | size_t seq_script_size = 0; |