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
31 static int v3d_mmu_flush_all(struct v3d_dev *v3d) in v3d_mmu_flush_all() argument
41 dev_err(v3d->drm.dev, "TLB clear wait idle pre-wait failed\n"); in v3d_mmu_flush_all()
53 dev_err(v3d->drm.dev, "TLB clear wait idle failed\n"); in v3d_mmu_flush_all()
60 dev_err(v3d->drm.dev, "MMUC flush wait idle failed\n"); in v3d_mmu_flush_all()
65 int v3d_mmu_set_page_table(struct v3d_dev *v3d) in v3d_mmu_set_page_table() argument
67 V3D_WRITE(V3D_MMU_PT_PA_BASE, v3d->pt_paddr >> V3D_MMU_PAGE_SHIFT); in v3d_mmu_set_page_table()
78 (v3d->mmu_scratch_paddr >> V3D_MMU_PAGE_SHIFT) | in v3d_mmu_set_page_table()
82 return v3d_mmu_flush_all(v3d); in v3d_mmu_set_page_table()
88 struct v3d_dev *v3d = to_v3d_dev(shmem_obj->base.dev); in v3d_mmu_insert_ptes() local
102 v3d->pt[page++] = pte + i; in v3d_mmu_insert_ptes()
108 if (v3d_mmu_flush_all(v3d)) in v3d_mmu_insert_ptes()
109 dev_err(v3d->drm.dev, "MMU flush timeout\n"); in v3d_mmu_insert_ptes()
114 struct v3d_dev *v3d = to_v3d_dev(bo->base.base.dev); in v3d_mmu_remove_ptes() local
119 v3d->pt[page] = 0; in v3d_mmu_remove_ptes()
121 if (v3d_mmu_flush_all(v3d)) in v3d_mmu_remove_ptes()
122 dev_err(v3d->drm.dev, "MMU flush timeout\n"); in v3d_mmu_remove_ptes()