diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/mm_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/mm_gk20a.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c index 6c4637e8..76c33512 100644 --- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c | |||
@@ -414,6 +414,10 @@ int gk20a_init_mm_setup_hw(struct gk20a *g) | |||
414 | gk20a_dbg_fn(""); | 414 | gk20a_dbg_fn(""); |
415 | 415 | ||
416 | g->ops.fb.set_mmu_page_size(g); | 416 | g->ops.fb.set_mmu_page_size(g); |
417 | if (g->ops.fb.set_use_full_comp_tag_line) | ||
418 | mm->use_full_comp_tag_line = | ||
419 | g->ops.fb.set_use_full_comp_tag_line(g); | ||
420 | |||
417 | 421 | ||
418 | inst_pa = (u32)(inst_pa >> bar1_instance_block_shift_gk20a()); | 422 | inst_pa = (u32)(inst_pa >> bar1_instance_block_shift_gk20a()); |
419 | gk20a_dbg_info("bar1 inst block ptr: 0x%08x", (u32)inst_pa); | 423 | gk20a_dbg_info("bar1 inst block ptr: 0x%08x", (u32)inst_pa); |
@@ -2327,6 +2331,11 @@ static int update_gmmu_pte_locked(struct vm_gk20a *vm, | |||
2327 | gmmu_pte_kind_f(kind_v) | | 2331 | gmmu_pte_kind_f(kind_v) | |
2328 | gmmu_pte_comptagline_f((u32)(*ctag / ctag_granularity)); | 2332 | gmmu_pte_comptagline_f((u32)(*ctag / ctag_granularity)); |
2329 | 2333 | ||
2334 | if (vm->mm->use_full_comp_tag_line && *iova & 0x10000) { | ||
2335 | pte_w[1] |= gmmu_pte_comptagline_f( | ||
2336 | 1 << (gmmu_pte_comptagline_s() - 1)); | ||
2337 | } | ||
2338 | |||
2330 | if (rw_flag == gk20a_mem_flag_read_only) { | 2339 | if (rw_flag == gk20a_mem_flag_read_only) { |
2331 | pte_w[0] |= gmmu_pte_read_only_true_f(); | 2340 | pte_w[0] |= gmmu_pte_read_only_true_f(); |
2332 | pte_w[1] |= | 2341 | pte_w[1] |= |