Lines Matching full:v3d
5 * DOC: Broadcom V3D MMU
7 * The V3D 3.x hardware (compared to VC4) now includes an MMU. It has
8 * a single level of page tables for the V3D's 4GB address space to
33 static int v3d_mmu_flush_all(struct v3d_dev *v3d) in v3d_mmu_flush_all() argument
43 dev_err(v3d->drm.dev, "MMUC flush wait idle failed\n"); in v3d_mmu_flush_all()
53 dev_err(v3d->drm.dev, "MMU TLB clear wait idle failed\n"); in v3d_mmu_flush_all()
58 int v3d_mmu_set_page_table(struct v3d_dev *v3d) in v3d_mmu_set_page_table() argument
60 V3D_WRITE(V3D_MMU_PT_PA_BASE, v3d->pt_paddr >> V3D_MMU_PAGE_SHIFT); in v3d_mmu_set_page_table()
71 (v3d->mmu_scratch_paddr >> V3D_MMU_PAGE_SHIFT) | in v3d_mmu_set_page_table()
75 return v3d_mmu_flush_all(v3d); in v3d_mmu_set_page_table()
81 struct v3d_dev *v3d = to_v3d_dev(shmem_obj->base.dev); in v3d_mmu_insert_ptes() local
95 v3d->pt[page++] = pte + i; in v3d_mmu_insert_ptes()
101 if (v3d_mmu_flush_all(v3d)) in v3d_mmu_insert_ptes()
102 dev_err(v3d->drm.dev, "MMU flush timeout\n"); in v3d_mmu_insert_ptes()
107 struct v3d_dev *v3d = to_v3d_dev(bo->base.base.dev); in v3d_mmu_remove_ptes() local
112 v3d->pt[page] = 0; in v3d_mmu_remove_ptes()
114 if (v3d_mmu_flush_all(v3d)) in v3d_mmu_remove_ptes()
115 dev_err(v3d->drm.dev, "MMU flush timeout\n"); in v3d_mmu_remove_ptes()