diff options
author | Thomas Fleury <tfleury@nvidia.com> | 2017-06-07 14:26:47 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-06-30 11:46:26 -0400 |
commit | 7eb34d10f6d3807fb19f21cdeb2a1e931cd4614a (patch) | |
tree | 5d024218eb4d7302df20f15b27db9e9842a2f317 /drivers/gpu/nvgpu | |
parent | 125c770c2a9c84d8243d015de4b515f33d45b2d7 (diff) |
gpu: nvgpu: determine memory configuration in hal
Remove mem_config_idx from platform data, and instead let
HAL determine which memory configuration to use. For this
purpose, HAL may use PCI device identifiers, VBIOS version
and possibly RAMCFG strap register.
Bug 1929155
Change-Id: I6633e9e0c79728c8e3740f3f956b53b3abfc667b
Reviewed-on: http://git-master/r/1497812
Signed-off-by: Thomas Fleury <tfleury@nvidia.com>
(cherry picked from commit b7141ff5441b7ea95f9826eb37ae869f408e1414)
Reviewed-on: https://git-master/r/1506584
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu')
-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; |