Lines Matching refs:l2

41 	struct shmobile_iommu_domain_pgtable l1, l2[L1_LEN];  member
108 sh_domain->l2[i].pgtable = NULL; in shmobile_iommu_domain_alloc()
121 if (sh_domain->l2[i].pgtable) in shmobile_iommu_domain_free()
122 pgtable_free(&sh_domain->l2[i], l2cache, L2_SIZE); in shmobile_iommu_domain_free()
193 if (!sh_domain->l2[l1index].pgtable) { in l2alloc()
194 ret = pgtable_alloc(&sh_domain->l2[l1index], l2cache, L2_SIZE); in l2alloc()
199 sh_domain->l2[l1index].handle | 0x1); in l2alloc()
203 static void l2realfree(struct shmobile_iommu_domain_pgtable *l2) in l2realfree() argument
205 if (l2->pgtable) in l2realfree()
206 pgtable_free(l2, l2cache, L2_SIZE); in l2realfree()
211 struct shmobile_iommu_domain_pgtable *l2) in l2free() argument
214 if (sh_domain->l2[l1index].pgtable) { in l2free()
215 *l2 = sh_domain->l2[l1index]; in l2free()
216 sh_domain->l2[l1index].pgtable = NULL; in l2free()
223 struct shmobile_iommu_domain_pgtable l2 = { .pgtable = NULL }; in shmobile_iommu_map() local
235 pgtable_write(&sh_domain->l2[l1index], l2index, 1, in shmobile_iommu_map()
244 pgtable_write(&sh_domain->l2[l1index], l2index, 0x10, in shmobile_iommu_map()
250 l2free(sh_domain, l1index, &l2); in shmobile_iommu_map()
260 l2realfree(&l2); in shmobile_iommu_map()
267 struct shmobile_iommu_domain_pgtable l2 = { .pgtable = NULL }; in shmobile_iommu_unmap() local
276 l2free(sh_domain, l1index, &l2); in shmobile_iommu_unmap()
283 if (sh_domain->l2[l1index].pgtable) in shmobile_iommu_unmap()
284 l2entry = pgtable_read(&sh_domain->l2[l1index], l2index); in shmobile_iommu_unmap()
289 pgtable_write(&sh_domain->l2[l1index], l2index, 0x10, 0); in shmobile_iommu_unmap()
293 pgtable_write(&sh_domain->l2[l1index], l2index, 1, 0); in shmobile_iommu_unmap()
301 l2realfree(&l2); in shmobile_iommu_unmap()
315 if (sh_domain->l2[l1index].pgtable) in shmobile_iommu_iova_to_phys()
316 l2entry = pgtable_read(&sh_domain->l2[l1index], l2index); in shmobile_iommu_iova_to_phys()