summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2018-07-06 15:37:10 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-07-09 20:45:30 -0400
commit876953fbb85f9440bbcc1d7d59435593886b53c4 (patch)
tree9690ee5598b83fcfa222592eeb2e3bb45389f3a6 /drivers/gpu/nvgpu/gm20b/gr_gm20b.c
parentda03aa782535e77e221a3c27b0676fe9c1c7980c (diff)
gpu: nvgpu: Move FB MMU query to FB HAL
Move queries of FB MMU configuration to FB HAL. Also use g->ltc_count instead of reading the number of LTCs from FB. These changes together remove last direct uses of FB registers from GR. JIRA NVGPU-714 Change-Id: I1b4b46fc2f636f5c1904e4174040a47a27948999 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1773076 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b/gr_gm20b.c')
-rw-r--r--drivers/gpu/nvgpu/gm20b/gr_gm20b.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
index 85da0d35..32ab58c1 100644
--- a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
@@ -36,7 +36,6 @@
36 36
37#include <nvgpu/hw/gm20b/hw_gr_gm20b.h> 37#include <nvgpu/hw/gm20b/hw_gr_gm20b.h>
38#include <nvgpu/hw/gm20b/hw_fifo_gm20b.h> 38#include <nvgpu/hw/gm20b/hw_fifo_gm20b.h>
39#include <nvgpu/hw/gm20b/hw_fb_gm20b.h>
40#include <nvgpu/hw/gm20b/hw_top_gm20b.h> 39#include <nvgpu/hw/gm20b/hw_top_gm20b.h>
41#include <nvgpu/hw/gm20b/hw_ltc_gm20b.h> 40#include <nvgpu/hw/gm20b/hw_ltc_gm20b.h>
42#include <nvgpu/hw/gm20b/hw_ctxsw_prog_gm20b.h> 41#include <nvgpu/hw/gm20b/hw_ctxsw_prog_gm20b.h>
@@ -49,7 +48,7 @@ void gr_gm20b_init_gpc_mmu(struct gk20a *g)
49 48
50 nvgpu_log_info(g, "initialize gpc mmu"); 49 nvgpu_log_info(g, "initialize gpc mmu");
51 50
52 temp = gk20a_readl(g, fb_mmu_ctrl_r()); 51 temp = g->ops.fb.mmu_ctrl(g);
53 temp &= gr_gpcs_pri_mmu_ctrl_vm_pg_size_m() | 52 temp &= gr_gpcs_pri_mmu_ctrl_vm_pg_size_m() |
54 gr_gpcs_pri_mmu_ctrl_use_pdb_big_page_size_m() | 53 gr_gpcs_pri_mmu_ctrl_use_pdb_big_page_size_m() |
55 gr_gpcs_pri_mmu_ctrl_use_full_comp_tag_line_m() | 54 gr_gpcs_pri_mmu_ctrl_use_full_comp_tag_line_m() |
@@ -65,14 +64,13 @@ void gr_gm20b_init_gpc_mmu(struct gk20a *g)
65 gk20a_writel(g, gr_gpcs_pri_mmu_pm_req_mask_r(), 0); 64 gk20a_writel(g, gr_gpcs_pri_mmu_pm_req_mask_r(), 0);
66 65
67 gk20a_writel(g, gr_gpcs_pri_mmu_debug_ctrl_r(), 66 gk20a_writel(g, gr_gpcs_pri_mmu_debug_ctrl_r(),
68 gk20a_readl(g, fb_mmu_debug_ctrl_r())); 67 g->ops.fb.mmu_debug_ctrl(g));
69 gk20a_writel(g, gr_gpcs_pri_mmu_debug_wr_r(), 68 gk20a_writel(g, gr_gpcs_pri_mmu_debug_wr_r(),
70 gk20a_readl(g, fb_mmu_debug_wr_r())); 69 g->ops.fb.mmu_debug_wr(g));
71 gk20a_writel(g, gr_gpcs_pri_mmu_debug_rd_r(), 70 gk20a_writel(g, gr_gpcs_pri_mmu_debug_rd_r(),
72 gk20a_readl(g, fb_mmu_debug_rd_r())); 71 g->ops.fb.mmu_debug_rd(g));
73 72
74 gk20a_writel(g, gr_gpcs_mmu_num_active_ltcs_r(), 73 gk20a_writel(g, gr_gpcs_mmu_num_active_ltcs_r(), g->ltc_count);
75 gk20a_readl(g, fb_fbhub_num_active_ltcs_r()));
76} 74}
77 75
78void gr_gm20b_bundle_cb_defaults(struct gk20a *g) 76void gr_gm20b_bundle_cb_defaults(struct gk20a *g)