diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b')
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/fb_gm20b.c | 20 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/fb_gm20b.h | 4 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/gr_gm20b.c | 12 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/hal_gm20b.c | 4 |
4 files changed, 33 insertions, 7 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/fb_gm20b.c b/drivers/gpu/nvgpu/gm20b/fb_gm20b.c index 2ca8d86c..37a7944b 100644 --- a/drivers/gpu/nvgpu/gm20b/fb_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/fb_gm20b.c | |||
@@ -68,6 +68,26 @@ bool gm20b_fb_set_use_full_comp_tag_line(struct gk20a *g) | |||
68 | return true; | 68 | return true; |
69 | } | 69 | } |
70 | 70 | ||
71 | u32 gm20b_fb_mmu_ctrl(struct gk20a *g) | ||
72 | { | ||
73 | return gk20a_readl(g, fb_mmu_ctrl_r()); | ||
74 | } | ||
75 | |||
76 | u32 gm20b_fb_mmu_debug_ctrl(struct gk20a *g) | ||
77 | { | ||
78 | return gk20a_readl(g, fb_mmu_debug_ctrl_r()); | ||
79 | } | ||
80 | |||
81 | u32 gm20b_fb_mmu_debug_wr(struct gk20a *g) | ||
82 | { | ||
83 | return gk20a_readl(g, fb_mmu_debug_wr_r()); | ||
84 | } | ||
85 | |||
86 | u32 gm20b_fb_mmu_debug_rd(struct gk20a *g) | ||
87 | { | ||
88 | return gk20a_readl(g, fb_mmu_debug_rd_r()); | ||
89 | } | ||
90 | |||
71 | unsigned int gm20b_fb_compression_page_size(struct gk20a *g) | 91 | unsigned int gm20b_fb_compression_page_size(struct gk20a *g) |
72 | { | 92 | { |
73 | return SZ_128K; | 93 | return SZ_128K; |
diff --git a/drivers/gpu/nvgpu/gm20b/fb_gm20b.h b/drivers/gpu/nvgpu/gm20b/fb_gm20b.h index 1d1d5899..1a5e9187 100644 --- a/drivers/gpu/nvgpu/gm20b/fb_gm20b.h +++ b/drivers/gpu/nvgpu/gm20b/fb_gm20b.h | |||
@@ -29,6 +29,10 @@ struct gk20a; | |||
29 | void fb_gm20b_init_fs_state(struct gk20a *g); | 29 | void fb_gm20b_init_fs_state(struct gk20a *g); |
30 | void gm20b_fb_set_mmu_page_size(struct gk20a *g); | 30 | void gm20b_fb_set_mmu_page_size(struct gk20a *g); |
31 | bool gm20b_fb_set_use_full_comp_tag_line(struct gk20a *g); | 31 | bool gm20b_fb_set_use_full_comp_tag_line(struct gk20a *g); |
32 | u32 gm20b_fb_mmu_ctrl(struct gk20a *g); | ||
33 | u32 gm20b_fb_mmu_debug_ctrl(struct gk20a *g); | ||
34 | u32 gm20b_fb_mmu_debug_wr(struct gk20a *g); | ||
35 | u32 gm20b_fb_mmu_debug_rd(struct gk20a *g); | ||
32 | unsigned int gm20b_fb_compression_page_size(struct gk20a *g); | 36 | unsigned int gm20b_fb_compression_page_size(struct gk20a *g); |
33 | unsigned int gm20b_fb_compressible_page_size(struct gk20a *g); | 37 | unsigned int gm20b_fb_compressible_page_size(struct gk20a *g); |
34 | u32 gm20b_fb_compression_align_mask(struct gk20a *g); | 38 | u32 gm20b_fb_compression_align_mask(struct gk20a *g); |
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) |
diff --git a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c index 798b5f06..02355450 100644 --- a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c | |||
@@ -340,6 +340,10 @@ static const struct gpu_ops gm20b_ops = { | |||
340 | .set_mmu_page_size = gm20b_fb_set_mmu_page_size, | 340 | .set_mmu_page_size = gm20b_fb_set_mmu_page_size, |
341 | .set_use_full_comp_tag_line = | 341 | .set_use_full_comp_tag_line = |
342 | gm20b_fb_set_use_full_comp_tag_line, | 342 | gm20b_fb_set_use_full_comp_tag_line, |
343 | .mmu_ctrl = gm20b_fb_mmu_ctrl, | ||
344 | .mmu_debug_ctrl = gm20b_fb_mmu_debug_ctrl, | ||
345 | .mmu_debug_wr = gm20b_fb_mmu_debug_wr, | ||
346 | .mmu_debug_rd = gm20b_fb_mmu_debug_rd, | ||
343 | .compression_page_size = gm20b_fb_compression_page_size, | 347 | .compression_page_size = gm20b_fb_compression_page_size, |
344 | .compressible_page_size = gm20b_fb_compressible_page_size, | 348 | .compressible_page_size = gm20b_fb_compressible_page_size, |
345 | .compression_align_mask = gm20b_fb_compression_align_mask, | 349 | .compression_align_mask = gm20b_fb_compression_align_mask, |