diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2018-07-06 15:37:10 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-07-09 20:45:30 -0400 |
commit | 876953fbb85f9440bbcc1d7d59435593886b53c4 (patch) | |
tree | 9690ee5598b83fcfa222592eeb2e3bb45389f3a6 /drivers/gpu/nvgpu/gm20b/gr_gm20b.c | |
parent | da03aa782535e77e221a3c27b0676fe9c1c7980c (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.c | 12 |
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 | ||
78 | void gr_gm20b_bundle_cb_defaults(struct gk20a *g) | 76 | void gr_gm20b_bundle_cb_defaults(struct gk20a *g) |