Lines Matching refs:dom

98 static struct mtk_iommu_domain *to_mtk_domain(struct iommu_domain *dom)  in to_mtk_domain()  argument
100 return container_of(dom, struct mtk_iommu_domain, domain); in to_mtk_domain()
162 struct mtk_iommu_domain *dom = data->m4u_dom; in mtk_iommu_isr() local
180 if (report_iommu_fault(&dom->domain, data->dev, fault_iova, in mtk_iommu_isr()
222 struct mtk_iommu_domain *dom = data->m4u_dom; in mtk_iommu_domain_finalise() local
224 spin_lock_init(&dom->pgtlock); in mtk_iommu_domain_finalise()
226 dom->pgt_va = dma_alloc_coherent(data->dev, M2701_IOMMU_PGT_SIZE, in mtk_iommu_domain_finalise()
227 &dom->pgt_pa, GFP_KERNEL); in mtk_iommu_domain_finalise()
228 if (!dom->pgt_va) in mtk_iommu_domain_finalise()
231 writel(dom->pgt_pa, data->base + REG_MMU_PT_BASE_ADDR); in mtk_iommu_domain_finalise()
233 dom->data = data; in mtk_iommu_domain_finalise()
240 struct mtk_iommu_domain *dom; in mtk_iommu_domain_alloc() local
245 dom = kzalloc(sizeof(*dom), GFP_KERNEL); in mtk_iommu_domain_alloc()
246 if (!dom) in mtk_iommu_domain_alloc()
249 return &dom->domain; in mtk_iommu_domain_alloc()
254 struct mtk_iommu_domain *dom = to_mtk_domain(domain); in mtk_iommu_domain_free() local
255 struct mtk_iommu_data *data = dom->data; in mtk_iommu_domain_free()
258 dom->pgt_va, dom->pgt_pa); in mtk_iommu_domain_free()
266 struct mtk_iommu_domain *dom = to_mtk_domain(domain); in mtk_iommu_attach_device() local
276 data->m4u_dom = dom; in mtk_iommu_attach_device()
299 struct mtk_iommu_domain *dom = to_mtk_domain(domain); in mtk_iommu_map() local
303 u32 *pgt_base_iova = dom->pgt_va + (iova >> MT2701_IOMMU_PAGE_SHIFT); in mtk_iommu_map()
307 spin_lock_irqsave(&dom->pgtlock, flags); in mtk_iommu_map()
318 spin_unlock_irqrestore(&dom->pgtlock, flags); in mtk_iommu_map()
320 mtk_iommu_tlb_flush_range(dom->data, iova, size); in mtk_iommu_map()
329 struct mtk_iommu_domain *dom = to_mtk_domain(domain); in mtk_iommu_unmap() local
331 u32 *pgt_base_iova = dom->pgt_va + (iova >> MT2701_IOMMU_PAGE_SHIFT); in mtk_iommu_unmap()
334 spin_lock_irqsave(&dom->pgtlock, flags); in mtk_iommu_unmap()
336 spin_unlock_irqrestore(&dom->pgtlock, flags); in mtk_iommu_unmap()
338 mtk_iommu_tlb_flush_range(dom->data, iova, size); in mtk_iommu_unmap()
346 struct mtk_iommu_domain *dom = to_mtk_domain(domain); in mtk_iommu_iova_to_phys() local
350 spin_lock_irqsave(&dom->pgtlock, flags); in mtk_iommu_iova_to_phys()
351 pa = *(dom->pgt_va + (iova >> MT2701_IOMMU_PAGE_SHIFT)); in mtk_iommu_iova_to_phys()
353 spin_unlock_irqrestore(&dom->pgtlock, flags); in mtk_iommu_iova_to_phys()