diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common/fb')
-rw-r--r-- | drivers/gpu/nvgpu/common/fb/fb_gm20b.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/common/fb/fb_gm20b.c b/drivers/gpu/nvgpu/common/fb/fb_gm20b.c index 65b7336c..00d0fba4 100644 --- a/drivers/gpu/nvgpu/common/fb/fb_gm20b.c +++ b/drivers/gpu/nvgpu/common/fb/fb_gm20b.c | |||
@@ -55,9 +55,32 @@ void gm20b_fb_reset(struct gk20a *g) | |||
55 | 55 | ||
56 | void gm20b_fb_init_hw(struct gk20a *g) | 56 | void gm20b_fb_init_hw(struct gk20a *g) |
57 | { | 57 | { |
58 | u32 addr = nvgpu_mem_get_addr(g, &g->mm.sysmem_flush) >> 8; | 58 | u64 addr = nvgpu_mem_get_addr(g, &g->mm.sysmem_flush) >> 8; |
59 | 59 | ||
60 | gk20a_writel(g, fb_niso_flush_sysmem_addr_r(), addr); | 60 | gk20a_writel(g, fb_niso_flush_sysmem_addr_r(), addr); |
61 | |||
62 | /* init mmu debug buffer */ | ||
63 | addr = nvgpu_mem_get_addr(g, &g->mm.mmu_wr_mem); | ||
64 | addr >>= fb_mmu_debug_wr_addr_alignment_v(); | ||
65 | |||
66 | gk20a_writel(g, fb_mmu_debug_wr_r(), | ||
67 | nvgpu_aperture_mask(g, &g->mm.mmu_wr_mem, | ||
68 | fb_mmu_debug_wr_aperture_sys_mem_ncoh_f(), | ||
69 | fb_mmu_debug_wr_aperture_sys_mem_coh_f(), | ||
70 | fb_mmu_debug_wr_aperture_vid_mem_f()) | | ||
71 | fb_mmu_debug_wr_vol_false_f() | | ||
72 | fb_mmu_debug_wr_addr_f(addr)); | ||
73 | |||
74 | addr = nvgpu_mem_get_addr(g, &g->mm.mmu_rd_mem); | ||
75 | addr >>= fb_mmu_debug_rd_addr_alignment_v(); | ||
76 | |||
77 | gk20a_writel(g, fb_mmu_debug_rd_r(), | ||
78 | nvgpu_aperture_mask(g, &g->mm.mmu_rd_mem, | ||
79 | fb_mmu_debug_wr_aperture_sys_mem_ncoh_f(), | ||
80 | fb_mmu_debug_wr_aperture_sys_mem_coh_f(), | ||
81 | fb_mmu_debug_rd_aperture_vid_mem_f()) | | ||
82 | fb_mmu_debug_rd_vol_false_f() | | ||
83 | fb_mmu_debug_rd_addr_f(addr)); | ||
61 | } | 84 | } |
62 | 85 | ||
63 | int gm20b_fb_tlb_invalidate(struct gk20a *g, struct nvgpu_mem *pdb) | 86 | int gm20b_fb_tlb_invalidate(struct gk20a *g, struct nvgpu_mem *pdb) |