Lines Matching refs:dom
207 static struct mtk_iommu_domain *to_mtk_domain(struct iommu_domain *dom) in to_mtk_domain() argument
209 return container_of(dom, struct mtk_iommu_domain, domain); in to_mtk_domain()
273 struct mtk_iommu_domain *dom = data->m4u_dom; in mtk_iommu_isr() local
309 if (report_iommu_fault(&dom->domain, data->dev, fault_iova, in mtk_iommu_isr()
387 static int mtk_iommu_domain_finalise(struct mtk_iommu_domain *dom, in mtk_iommu_domain_finalise() argument
395 dom->iop = data->m4u_dom->iop; in mtk_iommu_domain_finalise()
396 dom->cfg = data->m4u_dom->cfg; in mtk_iommu_domain_finalise()
397 dom->domain.pgsize_bitmap = data->m4u_dom->cfg.pgsize_bitmap; in mtk_iommu_domain_finalise()
401 dom->cfg = (struct io_pgtable_cfg) { in mtk_iommu_domain_finalise()
411 dom->cfg.oas = data->enable_4GB ? 33 : 32; in mtk_iommu_domain_finalise()
413 dom->cfg.oas = 35; in mtk_iommu_domain_finalise()
415 dom->iop = alloc_io_pgtable_ops(ARM_V7S, &dom->cfg, data); in mtk_iommu_domain_finalise()
416 if (!dom->iop) { in mtk_iommu_domain_finalise()
422 dom->domain.pgsize_bitmap = dom->cfg.pgsize_bitmap; in mtk_iommu_domain_finalise()
427 dom->domain.geometry.aperture_start = region->iova_base; in mtk_iommu_domain_finalise()
428 dom->domain.geometry.aperture_end = region->iova_base + region->size - 1; in mtk_iommu_domain_finalise()
429 dom->domain.geometry.force_aperture = true; in mtk_iommu_domain_finalise()
435 struct mtk_iommu_domain *dom; in mtk_iommu_domain_alloc() local
440 dom = kzalloc(sizeof(*dom), GFP_KERNEL); in mtk_iommu_domain_alloc()
441 if (!dom) in mtk_iommu_domain_alloc()
444 if (iommu_get_dma_cookie(&dom->domain)) { in mtk_iommu_domain_alloc()
445 kfree(dom); in mtk_iommu_domain_alloc()
449 return &dom->domain; in mtk_iommu_domain_alloc()
462 struct mtk_iommu_domain *dom = to_mtk_domain(domain); in mtk_iommu_attach_device() local
470 if (!dom->data) { in mtk_iommu_attach_device()
474 if (mtk_iommu_domain_finalise(dom, frstdata, domid)) in mtk_iommu_attach_device()
476 dom->data = data; in mtk_iommu_attach_device()
490 data->m4u_dom = dom; in mtk_iommu_attach_device()
491 writel(dom->cfg.arm_v7s_cfg.ttbr & MMU_PT_ADDR_MASK, in mtk_iommu_attach_device()
517 struct mtk_iommu_domain *dom = to_mtk_domain(domain); in mtk_iommu_map() local
520 if (dom->data->enable_4GB) in mtk_iommu_map()
524 return dom->iop->map(dom->iop, iova, paddr, size, prot, gfp); in mtk_iommu_map()
531 struct mtk_iommu_domain *dom = to_mtk_domain(domain); in mtk_iommu_unmap() local
538 return dom->iop->unmap(dom->iop, iova, size, gather); in mtk_iommu_unmap()
543 struct mtk_iommu_domain *dom = to_mtk_domain(domain); in mtk_iommu_flush_iotlb_all() local
545 mtk_iommu_tlb_flush_all(dom->data); in mtk_iommu_flush_iotlb_all()
551 struct mtk_iommu_domain *dom = to_mtk_domain(domain); in mtk_iommu_iotlb_sync() local
555 dom->data); in mtk_iommu_iotlb_sync()
561 struct mtk_iommu_domain *dom = to_mtk_domain(domain); in mtk_iommu_sync_map() local
563 mtk_iommu_tlb_flush_range_sync(iova, size, size, dom->data); in mtk_iommu_sync_map()
569 struct mtk_iommu_domain *dom = to_mtk_domain(domain); in mtk_iommu_iova_to_phys() local
572 pa = dom->iop->iova_to_phys(dom->iop, iova); in mtk_iommu_iova_to_phys()
573 if (dom->data->enable_4GB && pa >= MTK_IOMMU_4GB_MODE_REMAP_BASE) in mtk_iommu_iova_to_phys()