Lines Matching refs:qcom_domain

116 	struct qcom_iommu_domain *qcom_domain = cookie;  in qcom_iommu_tlb_sync()  local
117 struct iommu_fwspec *fwspec = qcom_domain->fwspec; in qcom_iommu_tlb_sync()
121 struct qcom_iommu_ctx *ctx = to_ctx(qcom_domain, fwspec->ids[i]); in qcom_iommu_tlb_sync()
135 struct qcom_iommu_domain *qcom_domain = cookie; in qcom_iommu_tlb_inv_context() local
136 struct iommu_fwspec *fwspec = qcom_domain->fwspec; in qcom_iommu_tlb_inv_context()
140 struct qcom_iommu_ctx *ctx = to_ctx(qcom_domain, fwspec->ids[i]); in qcom_iommu_tlb_inv_context()
150 struct qcom_iommu_domain *qcom_domain = cookie; in qcom_iommu_tlb_inv_range_nosync() local
151 struct iommu_fwspec *fwspec = qcom_domain->fwspec; in qcom_iommu_tlb_inv_range_nosync()
157 struct qcom_iommu_ctx *ctx = to_ctx(qcom_domain, fwspec->ids[i]); in qcom_iommu_tlb_inv_range_nosync()
220 struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); in qcom_iommu_init_domain() local
227 mutex_lock(&qcom_domain->init_mutex); in qcom_iommu_init_domain()
228 if (qcom_domain->iommu) in qcom_iommu_init_domain()
239 qcom_domain->iommu = qcom_iommu; in qcom_iommu_init_domain()
240 qcom_domain->fwspec = fwspec; in qcom_iommu_init_domain()
242 pgtbl_ops = alloc_io_pgtable_ops(ARM_32_LPAE_S1, &pgtbl_cfg, qcom_domain); in qcom_iommu_init_domain()
255 struct qcom_iommu_ctx *ctx = to_ctx(qcom_domain, fwspec->ids[i]); in qcom_iommu_init_domain()
311 mutex_unlock(&qcom_domain->init_mutex); in qcom_iommu_init_domain()
314 qcom_domain->pgtbl_ops = pgtbl_ops; in qcom_iommu_init_domain()
319 qcom_domain->iommu = NULL; in qcom_iommu_init_domain()
321 mutex_unlock(&qcom_domain->init_mutex); in qcom_iommu_init_domain()
327 struct qcom_iommu_domain *qcom_domain; in qcom_iommu_domain_alloc_paging() local
334 qcom_domain = kzalloc(sizeof(*qcom_domain), GFP_KERNEL); in qcom_iommu_domain_alloc_paging()
335 if (!qcom_domain) in qcom_iommu_domain_alloc_paging()
338 mutex_init(&qcom_domain->init_mutex); in qcom_iommu_domain_alloc_paging()
339 spin_lock_init(&qcom_domain->pgtbl_lock); in qcom_iommu_domain_alloc_paging()
341 return &qcom_domain->domain; in qcom_iommu_domain_alloc_paging()
346 struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); in qcom_iommu_domain_free() local
348 if (qcom_domain->iommu) { in qcom_iommu_domain_free()
355 pm_runtime_get_sync(qcom_domain->iommu->dev); in qcom_iommu_domain_free()
356 free_io_pgtable_ops(qcom_domain->pgtbl_ops); in qcom_iommu_domain_free()
357 pm_runtime_put_sync(qcom_domain->iommu->dev); in qcom_iommu_domain_free()
360 kfree(qcom_domain); in qcom_iommu_domain_free()
366 struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); in qcom_iommu_attach_dev() local
385 if (qcom_domain->iommu != qcom_iommu) in qcom_iommu_attach_dev()
395 struct qcom_iommu_domain *qcom_domain; in qcom_iommu_identity_attach() local
403 qcom_domain = to_qcom_iommu_domain(domain); in qcom_iommu_identity_attach()
404 if (WARN_ON(!qcom_domain->iommu)) in qcom_iommu_identity_attach()
409 struct qcom_iommu_ctx *ctx = to_ctx(qcom_domain, fwspec->ids[i]); in qcom_iommu_identity_attach()
435 struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); in qcom_iommu_map() local
436 struct io_pgtable_ops *ops = qcom_domain->pgtbl_ops; in qcom_iommu_map()
441 spin_lock_irqsave(&qcom_domain->pgtbl_lock, flags); in qcom_iommu_map()
443 spin_unlock_irqrestore(&qcom_domain->pgtbl_lock, flags); in qcom_iommu_map()
453 struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); in qcom_iommu_unmap() local
454 struct io_pgtable_ops *ops = qcom_domain->pgtbl_ops; in qcom_iommu_unmap()
464 pm_runtime_get_sync(qcom_domain->iommu->dev); in qcom_iommu_unmap()
465 spin_lock_irqsave(&qcom_domain->pgtbl_lock, flags); in qcom_iommu_unmap()
467 spin_unlock_irqrestore(&qcom_domain->pgtbl_lock, flags); in qcom_iommu_unmap()
468 pm_runtime_put_sync(qcom_domain->iommu->dev); in qcom_iommu_unmap()
475 struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); in qcom_iommu_flush_iotlb_all() local
476 struct io_pgtable *pgtable = container_of(qcom_domain->pgtbl_ops, in qcom_iommu_flush_iotlb_all()
478 if (!qcom_domain->pgtbl_ops) in qcom_iommu_flush_iotlb_all()
481 pm_runtime_get_sync(qcom_domain->iommu->dev); in qcom_iommu_flush_iotlb_all()
483 pm_runtime_put_sync(qcom_domain->iommu->dev); in qcom_iommu_flush_iotlb_all()
497 struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); in qcom_iommu_iova_to_phys() local
498 struct io_pgtable_ops *ops = qcom_domain->pgtbl_ops; in qcom_iommu_iova_to_phys()
503 spin_lock_irqsave(&qcom_domain->pgtbl_lock, flags); in qcom_iommu_iova_to_phys()
505 spin_unlock_irqrestore(&qcom_domain->pgtbl_lock, flags); in qcom_iommu_iova_to_phys()