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.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/fb_gk20a.c b/drivers/gpu/nvgpu/gk20a/fb_gk20a.c
index 52f2db4d..d5b3fd87 100644
--- a/drivers/gpu/nvgpu/gk20a/fb_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/fb_gk20a.c
@@ -18,6 +18,7 @@
18#include "gk20a.h" 18#include "gk20a.h"
19#include "kind_gk20a.h" 19#include "kind_gk20a.h"
20#include "hw_mc_gk20a.h" 20#include "hw_mc_gk20a.h"
21#include "hw_fb_gk20a.h"
21 22
22static void fb_gk20a_reset(struct gk20a *g) 23static void fb_gk20a_reset(struct gk20a *g)
23{ 24{
@@ -29,9 +30,22 @@ static void fb_gk20a_reset(struct gk20a *g)
29 | mc_enable_hub_enabled_f()); 30 | mc_enable_hub_enabled_f());
30} 31}
31 32
33static void gk20a_fb_set_mmu_page_size(struct gk20a *g)
34{
35 /* set large page size in fb */
36 u32 fb_mmu_ctrl = gk20a_readl(g, fb_mmu_ctrl_r());
37
38 fb_mmu_ctrl = (fb_mmu_ctrl &
39 ~fb_mmu_ctrl_vm_pg_size_f(~0x0)) |
40 fb_mmu_ctrl_vm_pg_size_128kb_f();
41
42 gk20a_writel(g, fb_mmu_ctrl_r(), fb_mmu_ctrl);
43}
44
32void gk20a_init_fb(struct gpu_ops *gops) 45void gk20a_init_fb(struct gpu_ops *gops)
33{ 46{
34 gops->fb.reset = fb_gk20a_reset; 47 gops->fb.reset = fb_gk20a_reset;
48 gops->fb.set_mmu_page_size = gk20a_fb_set_mmu_page_size;
35 gk20a_init_uncompressed_kind_map(); 49 gk20a_init_uncompressed_kind_map();
36 gk20a_init_kind_attr(); 50 gk20a_init_kind_attr();
37} 51}