Lines Matching refs:etnaviv_domain
34 static int __etnaviv_iommu_init(struct etnaviv_iommuv1_domain *etnaviv_domain) in __etnaviv_iommu_init() argument
39 etnaviv_domain->base.bad_page_cpu = in __etnaviv_iommu_init()
40 dma_alloc_wc(etnaviv_domain->base.dev, SZ_4K, in __etnaviv_iommu_init()
41 &etnaviv_domain->base.bad_page_dma, in __etnaviv_iommu_init()
43 if (!etnaviv_domain->base.bad_page_cpu) in __etnaviv_iommu_init()
46 p = etnaviv_domain->base.bad_page_cpu; in __etnaviv_iommu_init()
50 etnaviv_domain->pgtable_cpu = dma_alloc_wc(etnaviv_domain->base.dev, in __etnaviv_iommu_init()
52 &etnaviv_domain->pgtable_dma, in __etnaviv_iommu_init()
54 if (!etnaviv_domain->pgtable_cpu) { in __etnaviv_iommu_init()
55 dma_free_wc(etnaviv_domain->base.dev, SZ_4K, in __etnaviv_iommu_init()
56 etnaviv_domain->base.bad_page_cpu, in __etnaviv_iommu_init()
57 etnaviv_domain->base.bad_page_dma); in __etnaviv_iommu_init()
61 memset32(etnaviv_domain->pgtable_cpu, etnaviv_domain->base.bad_page_dma, in __etnaviv_iommu_init()
69 struct etnaviv_iommuv1_domain *etnaviv_domain = in etnaviv_iommuv1_domain_free() local
72 dma_free_wc(etnaviv_domain->base.dev, PT_SIZE, in etnaviv_iommuv1_domain_free()
73 etnaviv_domain->pgtable_cpu, etnaviv_domain->pgtable_dma); in etnaviv_iommuv1_domain_free()
75 dma_free_wc(etnaviv_domain->base.dev, SZ_4K, in etnaviv_iommuv1_domain_free()
76 etnaviv_domain->base.bad_page_cpu, in etnaviv_iommuv1_domain_free()
77 etnaviv_domain->base.bad_page_dma); in etnaviv_iommuv1_domain_free()
79 kfree(etnaviv_domain); in etnaviv_iommuv1_domain_free()
86 struct etnaviv_iommuv1_domain *etnaviv_domain = to_etnaviv_domain(domain); in etnaviv_iommuv1_map() local
92 etnaviv_domain->pgtable_cpu[index] = paddr; in etnaviv_iommuv1_map()
100 struct etnaviv_iommuv1_domain *etnaviv_domain = in etnaviv_iommuv1_unmap() local
107 etnaviv_domain->pgtable_cpu[index] = etnaviv_domain->base.bad_page_dma; in etnaviv_iommuv1_unmap()
119 struct etnaviv_iommuv1_domain *etnaviv_domain = in etnaviv_iommuv1_dump() local
122 memcpy(buf, etnaviv_domain->pgtable_cpu, PT_SIZE); in etnaviv_iommuv1_dump()
127 struct etnaviv_iommuv1_domain *etnaviv_domain = in etnaviv_iommuv1_restore() local
139 pgtable = (u32)etnaviv_domain->pgtable_dma; in etnaviv_iommuv1_restore()
159 struct etnaviv_iommuv1_domain *etnaviv_domain; in etnaviv_iommuv1_domain_alloc() local
163 etnaviv_domain = kzalloc(sizeof(*etnaviv_domain), GFP_KERNEL); in etnaviv_iommuv1_domain_alloc()
164 if (!etnaviv_domain) in etnaviv_iommuv1_domain_alloc()
167 domain = &etnaviv_domain->base; in etnaviv_iommuv1_domain_alloc()
174 ret = __etnaviv_iommu_init(etnaviv_domain); in etnaviv_iommuv1_domain_alloc()
178 return &etnaviv_domain->base; in etnaviv_iommuv1_domain_alloc()
181 kfree(etnaviv_domain); in etnaviv_iommuv1_domain_alloc()