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/gp106 | |
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/gp106')
-rw-r--r-- | drivers/gpu/nvgpu/gp106/hal_gp106.c | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp106/mm_gp106.c | 47 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp106/mm_gp106.h | 32 |
3 files changed, 1 insertions, 81 deletions
diff --git a/drivers/gpu/nvgpu/gp106/hal_gp106.c b/drivers/gpu/nvgpu/gp106/hal_gp106.c index da1a44a9..69a797a6 100644 --- a/drivers/gpu/nvgpu/gp106/hal_gp106.c +++ b/drivers/gpu/nvgpu/gp106/hal_gp106.c | |||
@@ -81,7 +81,6 @@ | |||
81 | #include "gp106/bios_gp106.h" | 81 | #include "gp106/bios_gp106.h" |
82 | #include "gp106/fifo_gp106.h" | 82 | #include "gp106/fifo_gp106.h" |
83 | #include "gp106/clk_gp106.h" | 83 | #include "gp106/clk_gp106.h" |
84 | #include "gp106/mm_gp106.h" | ||
85 | #include "gp106/pmu_gp106.h" | 84 | #include "gp106/pmu_gp106.h" |
86 | #include "gp106/gr_ctx_gp106.h" | 85 | #include "gp106/gr_ctx_gp106.h" |
87 | #include "gp106/gr_gp106.h" | 86 | #include "gp106/gr_gp106.h" |
@@ -426,6 +425,7 @@ static const struct gpu_ops gp106_ops = { | |||
426 | .set_debug_mode = gm20b_fb_set_debug_mode, | 425 | .set_debug_mode = gm20b_fb_set_debug_mode, |
427 | .tlb_invalidate = gm20b_fb_tlb_invalidate, | 426 | .tlb_invalidate = gm20b_fb_tlb_invalidate, |
428 | .mem_unlock = NULL, | 427 | .mem_unlock = NULL, |
428 | .get_vidmem_size = gp106_fb_get_vidmem_size, | ||
429 | }, | 429 | }, |
430 | .clock_gating = { | 430 | .clock_gating = { |
431 | .slcg_bus_load_gating_prod = | 431 | .slcg_bus_load_gating_prod = |
@@ -598,7 +598,6 @@ static const struct gpu_ops gp106_ops = { | |||
598 | .mmu_fault_pending = gk20a_fifo_mmu_fault_pending, | 598 | .mmu_fault_pending = gk20a_fifo_mmu_fault_pending, |
599 | .init_bar2_vm = gp10b_init_bar2_vm, | 599 | .init_bar2_vm = gp10b_init_bar2_vm, |
600 | .remove_bar2_vm = gp10b_remove_bar2_vm, | 600 | .remove_bar2_vm = gp10b_remove_bar2_vm, |
601 | .get_vidmem_size = gp106_mm_get_vidmem_size, | ||
602 | .get_kind_invalid = gm20b_get_kind_invalid, | 601 | .get_kind_invalid = gm20b_get_kind_invalid, |
603 | .get_kind_pitch = gm20b_get_kind_pitch, | 602 | .get_kind_pitch = gm20b_get_kind_pitch, |
604 | }, | 603 | }, |
diff --git a/drivers/gpu/nvgpu/gp106/mm_gp106.c b/drivers/gpu/nvgpu/gp106/mm_gp106.c deleted file mode 100644 index 7864880f..00000000 --- a/drivers/gpu/nvgpu/gp106/mm_gp106.c +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | /* | ||
2 | * GP106 memory management | ||
3 | * | ||
4 | * Copyright (c) 2016-2018, NVIDIA CORPORATION. All rights reserved. | ||
5 | * | ||
6 | * Permission is hereby granted, free of charge, to any person obtaining a | ||
7 | * copy of this software and associated documentation files (the "Software"), | ||
8 | * to deal in the Software without restriction, including without limitation | ||
9 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
10 | * and/or sell copies of the Software, and to permit persons to whom the | ||
11 | * Software is furnished to do so, subject to the following conditions: | ||
12 | * | ||
13 | * The above copyright notice and this permission notice shall be included in | ||
14 | * all copies or substantial portions of the Software. | ||
15 | * | ||
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
19 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
21 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
22 | * DEALINGS IN THE SOFTWARE. | ||
23 | */ | ||
24 | |||
25 | #include <nvgpu/sizes.h> | ||
26 | #include <nvgpu/io.h> | ||
27 | |||
28 | #include "gk20a/gk20a.h" | ||
29 | #include "gp10b/mm_gp10b.h" | ||
30 | #include "gp106/mm_gp106.h" | ||
31 | |||
32 | #include <nvgpu/hw/gp106/hw_fb_gp106.h> | ||
33 | |||
34 | size_t gp106_mm_get_vidmem_size(struct gk20a *g) | ||
35 | { | ||
36 | u32 range = gk20a_readl(g, fb_mmu_local_memory_range_r()); | ||
37 | u32 mag = fb_mmu_local_memory_range_lower_mag_v(range); | ||
38 | u32 scale = fb_mmu_local_memory_range_lower_scale_v(range); | ||
39 | u32 ecc = fb_mmu_local_memory_range_ecc_mode_v(range); | ||
40 | size_t bytes = ((size_t)mag << scale) * SZ_1M; | ||
41 | |||
42 | if (ecc) { | ||
43 | bytes = bytes / 16 * 15; | ||
44 | } | ||
45 | |||
46 | return bytes; | ||
47 | } | ||
diff --git a/drivers/gpu/nvgpu/gp106/mm_gp106.h b/drivers/gpu/nvgpu/gp106/mm_gp106.h deleted file mode 100644 index e9eb2014..00000000 --- a/drivers/gpu/nvgpu/gp106/mm_gp106.h +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | /* | ||
2 | * GP106 memory management | ||
3 | * | ||
4 | * Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved. | ||
5 | * | ||
6 | * Permission is hereby granted, free of charge, to any person obtaining a | ||
7 | * copy of this software and associated documentation files (the "Software"), | ||
8 | * to deal in the Software without restriction, including without limitation | ||
9 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
10 | * and/or sell copies of the Software, and to permit persons to whom the | ||
11 | * Software is furnished to do so, subject to the following conditions: | ||
12 | * | ||
13 | * The above copyright notice and this permission notice shall be included in | ||
14 | * all copies or substantial portions of the Software. | ||
15 | * | ||
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
19 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
21 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
22 | * DEALINGS IN THE SOFTWARE. | ||
23 | */ | ||
24 | |||
25 | #ifndef MM_GP106_H | ||
26 | #define MM_GP106_H | ||
27 | |||
28 | struct gk20a; | ||
29 | |||
30 | size_t gp106_mm_get_vidmem_size(struct gk20a *g); | ||
31 | |||
32 | #endif | ||