video: tegra: host: gk20a pde l2 invalidate
Ken Adams [Thu, 18 Jul 2013 15:59:56 +0000 (11:59 -0400)]
We were missing a necessary l2 invalidate when
pdes are updated.  Also we had a "dirty" flag
we weren't using.  Removed it.

Bug 1325276

Change-Id: I9235fe7e82e998d8d5d98c58404c893703134737
Signed-off-by: Ken Adams <kadams@nvidia.com>
Reviewed-on: http://git-master/r/249400
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Kevin Huang (Eng-SW) <kevinh@nvidia.com>
Signed-off-by: Ken Adams <kadams@nvidia.com>
Reviewed-on: http://git-master/r/250846
Reviewed-by: Chao Xu <cxu@nvidia.com>
Tested-by: Chao Xu <cxu@nvidia.com>

drivers/video/tegra/host/gk20a/mm_gk20a.c
drivers/video/tegra/host/gk20a/mm_gk20a.h

index 84b5bd7..acc4b4f 100644 (file)
@@ -1422,10 +1422,10 @@ static void update_gmmu_pde(struct vm_gk20a *vm, u32 i)
 
        smp_mb();
        __cpuc_flush_dcache_area(pde, sizeof(u32) * 2);
-
+       gk20a_mm_l2_invalidate(vm->mm->g);
 
        nvhost_dbg(dbg_pte, "pde:%d = 0x%x,0x%08x\n", i, pde_v[1], pde_v[0]);
-       vm->pdes.dirty = true;
+
        vm->tlb_dirty  = true;
 }
 
index 8f5a14a..298ff50 100644 (file)
@@ -131,7 +131,6 @@ struct page_directory_gk20a {
        void *kv;
        /* Either a *page or a *mem_handle */
        void *ref;
-       bool dirty;
        struct sg_table *sgt;
        struct page_table_gk20a *ptes[gmmu_nr_page_sizes];
 };