diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2018-08-16 18:00:07 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-09-10 18:23:08 -0400 |
commit | 83efad7adb44647d37d98a57cbb6df48e356917d (patch) | |
tree | eebbe2f831484d2e6ea90d027f0dc16d69f42114 /drivers/gpu/nvgpu/gv100 | |
parent | a02e1c1f0b012b743d4c1ba9c853057b4359107e (diff) |
gpu: nvgpu: Move FB size query to FB
Vidmem size query was in mm_xxx.c. It involves reading a register from
FB, so move the query to FB HAL.
JIRA NVGPU-1063
Change-Id: I30dfd2c4fdcdd6c841f85aaab7431d52473759bd
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1801425
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gv100')
-rw-r--r-- | drivers/gpu/nvgpu/gv100/hal_gv100.c | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gv100/mm_gv100.c | 16 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gv100/mm_gv100.h | 1 |
3 files changed, 1 insertions, 18 deletions
diff --git a/drivers/gpu/nvgpu/gv100/hal_gv100.c b/drivers/gpu/nvgpu/gv100/hal_gv100.c index 589f6adf..4af237b0 100644 --- a/drivers/gpu/nvgpu/gv100/hal_gv100.c +++ b/drivers/gpu/nvgpu/gv100/hal_gv100.c | |||
@@ -510,6 +510,7 @@ static const struct gpu_ops gv100_ops = { | |||
510 | .is_fault_buf_enabled = gv11b_fb_is_fault_buf_enabled, | 510 | .is_fault_buf_enabled = gv11b_fb_is_fault_buf_enabled, |
511 | .fault_buf_set_state_hw = gv11b_fb_fault_buf_set_state_hw, | 511 | .fault_buf_set_state_hw = gv11b_fb_fault_buf_set_state_hw, |
512 | .fault_buf_configure_hw = gv11b_fb_fault_buf_configure_hw, | 512 | .fault_buf_configure_hw = gv11b_fb_fault_buf_configure_hw, |
513 | .get_vidmem_size = gv100_fb_get_vidmem_size, | ||
513 | }, | 514 | }, |
514 | .clock_gating = { | 515 | .clock_gating = { |
515 | .slcg_bus_load_gating_prod = | 516 | .slcg_bus_load_gating_prod = |
@@ -685,7 +686,6 @@ static const struct gpu_ops gv100_ops = { | |||
685 | .get_default_big_page_size = gp10b_mm_get_default_big_page_size, | 686 | .get_default_big_page_size = gp10b_mm_get_default_big_page_size, |
686 | .gpu_phys_addr = gv11b_gpu_phys_addr, | 687 | .gpu_phys_addr = gv11b_gpu_phys_addr, |
687 | .get_mmu_levels = gp10b_mm_get_mmu_levels, | 688 | .get_mmu_levels = gp10b_mm_get_mmu_levels, |
688 | .get_vidmem_size = gv100_mm_get_vidmem_size, | ||
689 | .init_pdb = gp10b_mm_init_pdb, | 689 | .init_pdb = gp10b_mm_init_pdb, |
690 | .init_mm_setup_hw = gv11b_init_mm_setup_hw, | 690 | .init_mm_setup_hw = gv11b_init_mm_setup_hw, |
691 | .is_bar1_supported = gv11b_mm_is_bar1_supported, | 691 | .is_bar1_supported = gv11b_mm_is_bar1_supported, |
diff --git a/drivers/gpu/nvgpu/gv100/mm_gv100.c b/drivers/gpu/nvgpu/gv100/mm_gv100.c index 38b876bf..77a0ac4d 100644 --- a/drivers/gpu/nvgpu/gv100/mm_gv100.c +++ b/drivers/gpu/nvgpu/gv100/mm_gv100.c | |||
@@ -28,22 +28,6 @@ | |||
28 | #include "gk20a/gk20a.h" | 28 | #include "gk20a/gk20a.h" |
29 | #include "gv100/mm_gv100.h" | 29 | #include "gv100/mm_gv100.h" |
30 | 30 | ||
31 | #include <nvgpu/hw/gv100/hw_fb_gv100.h> | ||
32 | |||
33 | size_t gv100_mm_get_vidmem_size(struct gk20a *g) | ||
34 | { | ||
35 | u32 range = gk20a_readl(g, fb_mmu_local_memory_range_r()); | ||
36 | u32 mag = fb_mmu_local_memory_range_lower_mag_v(range); | ||
37 | u32 scale = fb_mmu_local_memory_range_lower_scale_v(range); | ||
38 | u32 ecc = fb_mmu_local_memory_range_ecc_mode_v(range); | ||
39 | size_t bytes = ((size_t)mag << scale) * SZ_1M; | ||
40 | |||
41 | if (ecc) | ||
42 | bytes = bytes / 16 * 15; | ||
43 | |||
44 | return bytes; | ||
45 | } | ||
46 | |||
47 | u32 gv100_mm_get_flush_retries(struct gk20a *g, enum nvgpu_flush_op op) | 31 | u32 gv100_mm_get_flush_retries(struct gk20a *g, enum nvgpu_flush_op op) |
48 | { | 32 | { |
49 | switch (op) { | 33 | switch (op) { |
diff --git a/drivers/gpu/nvgpu/gv100/mm_gv100.h b/drivers/gpu/nvgpu/gv100/mm_gv100.h index ea896503..535e868c 100644 --- a/drivers/gpu/nvgpu/gv100/mm_gv100.h +++ b/drivers/gpu/nvgpu/gv100/mm_gv100.h | |||
@@ -27,7 +27,6 @@ | |||
27 | 27 | ||
28 | struct gk20a; | 28 | struct gk20a; |
29 | 29 | ||
30 | size_t gv100_mm_get_vidmem_size(struct gk20a *g); | ||
31 | u32 gv100_mm_get_flush_retries(struct gk20a *g, enum nvgpu_flush_op op); | 30 | u32 gv100_mm_get_flush_retries(struct gk20a *g, enum nvgpu_flush_op op); |
32 | 31 | ||
33 | #endif | 32 | #endif |