diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gp106')
-rw-r--r-- | drivers/gpu/nvgpu/gp106/fb_gp106.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gp106/fb_gp106.c b/drivers/gpu/nvgpu/gp106/fb_gp106.c index 53f9af56..dcb7e545 100644 --- a/drivers/gpu/nvgpu/gp106/fb_gp106.c +++ b/drivers/gpu/nvgpu/gp106/fb_gp106.c | |||
@@ -21,6 +21,8 @@ | |||
21 | 21 | ||
22 | static void gp106_fb_reset(struct gk20a *g) | 22 | static void gp106_fb_reset(struct gk20a *g) |
23 | { | 23 | { |
24 | u32 val; | ||
25 | |||
24 | int retries = HW_SCRUB_TIMEOUT_MAX / HW_SCRUB_TIMEOUT_DEFAULT; | 26 | int retries = HW_SCRUB_TIMEOUT_MAX / HW_SCRUB_TIMEOUT_DEFAULT; |
25 | /* wait for memory to be accessible */ | 27 | /* wait for memory to be accessible */ |
26 | do { | 28 | do { |
@@ -31,6 +33,10 @@ static void gp106_fb_reset(struct gk20a *g) | |||
31 | } | 33 | } |
32 | nvgpu_udelay(HW_SCRUB_TIMEOUT_DEFAULT); | 34 | nvgpu_udelay(HW_SCRUB_TIMEOUT_DEFAULT); |
33 | } while (--retries); | 35 | } while (--retries); |
36 | |||
37 | val = gk20a_readl(g, fb_mmu_priv_level_mask_r()); | ||
38 | val &= ~fb_mmu_priv_level_mask_write_violation_m(); | ||
39 | gk20a_writel(g, fb_mmu_priv_level_mask_r(), val); | ||
34 | } | 40 | } |
35 | 41 | ||
36 | void gp106_init_fb(struct gpu_ops *gops) | 42 | void gp106_init_fb(struct gpu_ops *gops) |