summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/fb_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/fb_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/fb_gk20a.c61
1 files changed, 0 insertions, 61 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/fb_gk20a.c b/drivers/gpu/nvgpu/gk20a/fb_gk20a.c
index 5aae14f2..3c76e817 100644
--- a/drivers/gpu/nvgpu/gk20a/fb_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/fb_gk20a.c
@@ -50,53 +50,6 @@ void gk20a_fb_init_hw(struct gk20a *g)
50 gk20a_writel(g, fb_niso_flush_sysmem_addr_r(), addr); 50 gk20a_writel(g, fb_niso_flush_sysmem_addr_r(), addr);
51} 51}
52 52
53static void gk20a_fb_set_mmu_page_size(struct gk20a *g)
54{
55 /* set large page size in fb */
56 u32 fb_mmu_ctrl = gk20a_readl(g, fb_mmu_ctrl_r());
57
58 fb_mmu_ctrl = (fb_mmu_ctrl &
59 ~fb_mmu_ctrl_vm_pg_size_f(~0x0)) |
60 fb_mmu_ctrl_vm_pg_size_128kb_f();
61
62 gk20a_writel(g, fb_mmu_ctrl_r(), fb_mmu_ctrl);
63}
64
65static unsigned int gk20a_fb_compression_page_size(struct gk20a *g)
66{
67 return SZ_128K;
68}
69
70static unsigned int gk20a_fb_compressible_page_size(struct gk20a *g)
71{
72 return SZ_64K;
73}
74
75static bool gk20a_fb_debug_mode_enabled(struct gk20a *g)
76{
77 u32 debug_ctrl = gk20a_readl(g, fb_mmu_debug_ctrl_r());
78 return fb_mmu_debug_ctrl_debug_v(debug_ctrl) ==
79 fb_mmu_debug_ctrl_debug_enabled_v();
80}
81
82static void gk20a_fb_set_debug_mode(struct gk20a *g, bool enable)
83{
84 u32 reg_val, debug_ctrl;
85
86 reg_val = gk20a_readl(g, fb_mmu_debug_ctrl_r());
87 if (enable) {
88 debug_ctrl = fb_mmu_debug_ctrl_debug_enabled_f();
89 g->mmu_debug_ctrl = true;
90 } else {
91 debug_ctrl = fb_mmu_debug_ctrl_debug_disabled_f();
92 g->mmu_debug_ctrl = false;
93 }
94
95 reg_val = set_field(reg_val,
96 fb_mmu_debug_ctrl_debug_m(), debug_ctrl);
97 gk20a_writel(g, fb_mmu_debug_ctrl_r(), reg_val);
98}
99
100void gk20a_fb_tlb_invalidate(struct gk20a *g, struct nvgpu_mem *pdb) 53void gk20a_fb_tlb_invalidate(struct gk20a *g, struct nvgpu_mem *pdb)
101{ 54{
102 struct nvgpu_timeout timeout; 55 struct nvgpu_timeout timeout;
@@ -159,17 +112,3 @@ void gk20a_fb_tlb_invalidate(struct gk20a *g, struct nvgpu_mem *pdb)
159out: 112out:
160 nvgpu_mutex_release(&g->mm.tlb_lock); 113 nvgpu_mutex_release(&g->mm.tlb_lock);
161} 114}
162
163void gk20a_init_fb(struct gpu_ops *gops)
164{
165 gops->fb.init_hw = gk20a_fb_init_hw;
166 gops->fb.reset = fb_gk20a_reset;
167 gops->fb.set_mmu_page_size = gk20a_fb_set_mmu_page_size;
168 gops->fb.compression_page_size = gk20a_fb_compression_page_size;
169 gops->fb.compressible_page_size = gk20a_fb_compressible_page_size;
170 gops->fb.is_debug_mode_enabled = gk20a_fb_debug_mode_enabled;
171 gops->fb.set_debug_mode = gk20a_fb_set_debug_mode;
172 gops->fb.tlb_invalidate = gk20a_fb_tlb_invalidate;
173 gk20a_init_uncompressed_kind_map();
174 gk20a_init_kind_attr();
175}