Lines Matching refs:qcom_domain
126 struct qcom_iommu_domain *qcom_domain = cookie; in qcom_iommu_tlb_sync() local
127 struct iommu_fwspec *fwspec = qcom_domain->fwspec; in qcom_iommu_tlb_sync()
131 struct qcom_iommu_ctx *ctx = to_ctx(qcom_domain, fwspec->ids[i]); in qcom_iommu_tlb_sync()
145 struct qcom_iommu_domain *qcom_domain = cookie; in qcom_iommu_tlb_inv_context() local
146 struct iommu_fwspec *fwspec = qcom_domain->fwspec; in qcom_iommu_tlb_inv_context()
150 struct qcom_iommu_ctx *ctx = to_ctx(qcom_domain, fwspec->ids[i]); in qcom_iommu_tlb_inv_context()
160 struct qcom_iommu_domain *qcom_domain = cookie; in qcom_iommu_tlb_inv_range_nosync() local
161 struct iommu_fwspec *fwspec = qcom_domain->fwspec; in qcom_iommu_tlb_inv_range_nosync()
167 struct qcom_iommu_ctx *ctx = to_ctx(qcom_domain, fwspec->ids[i]); in qcom_iommu_tlb_inv_range_nosync()
230 struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); in qcom_iommu_init_domain() local
237 mutex_lock(&qcom_domain->init_mutex); in qcom_iommu_init_domain()
238 if (qcom_domain->iommu) in qcom_iommu_init_domain()
249 qcom_domain->iommu = qcom_iommu; in qcom_iommu_init_domain()
250 qcom_domain->fwspec = fwspec; in qcom_iommu_init_domain()
252 pgtbl_ops = alloc_io_pgtable_ops(ARM_32_LPAE_S1, &pgtbl_cfg, qcom_domain); in qcom_iommu_init_domain()
265 struct qcom_iommu_ctx *ctx = to_ctx(qcom_domain, fwspec->ids[i]); in qcom_iommu_init_domain()
315 mutex_unlock(&qcom_domain->init_mutex); in qcom_iommu_init_domain()
318 qcom_domain->pgtbl_ops = pgtbl_ops; in qcom_iommu_init_domain()
323 qcom_domain->iommu = NULL; in qcom_iommu_init_domain()
325 mutex_unlock(&qcom_domain->init_mutex); in qcom_iommu_init_domain()
331 struct qcom_iommu_domain *qcom_domain; in qcom_iommu_domain_alloc() local
340 qcom_domain = kzalloc(sizeof(*qcom_domain), GFP_KERNEL); in qcom_iommu_domain_alloc()
341 if (!qcom_domain) in qcom_iommu_domain_alloc()
344 mutex_init(&qcom_domain->init_mutex); in qcom_iommu_domain_alloc()
345 spin_lock_init(&qcom_domain->pgtbl_lock); in qcom_iommu_domain_alloc()
347 return &qcom_domain->domain; in qcom_iommu_domain_alloc()
352 struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); in qcom_iommu_domain_free() local
354 if (qcom_domain->iommu) { in qcom_iommu_domain_free()
361 pm_runtime_get_sync(qcom_domain->iommu->dev); in qcom_iommu_domain_free()
362 free_io_pgtable_ops(qcom_domain->pgtbl_ops); in qcom_iommu_domain_free()
363 pm_runtime_put_sync(qcom_domain->iommu->dev); in qcom_iommu_domain_free()
366 kfree(qcom_domain); in qcom_iommu_domain_free()
372 struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); in qcom_iommu_attach_dev() local
391 if (qcom_domain->iommu != qcom_iommu) { in qcom_iommu_attach_dev()
394 dev_name(qcom_domain->iommu->dev), in qcom_iommu_attach_dev()
404 struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); in qcom_iommu_detach_dev() local
409 if (WARN_ON(!qcom_domain->iommu)) in qcom_iommu_detach_dev()
414 struct qcom_iommu_ctx *ctx = to_ctx(qcom_domain, fwspec->ids[i]); in qcom_iommu_detach_dev()
429 struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); in qcom_iommu_map() local
430 struct io_pgtable_ops *ops = qcom_domain->pgtbl_ops; in qcom_iommu_map()
435 spin_lock_irqsave(&qcom_domain->pgtbl_lock, flags); in qcom_iommu_map()
437 spin_unlock_irqrestore(&qcom_domain->pgtbl_lock, flags); in qcom_iommu_map()
446 struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); in qcom_iommu_unmap() local
447 struct io_pgtable_ops *ops = qcom_domain->pgtbl_ops; in qcom_iommu_unmap()
457 pm_runtime_get_sync(qcom_domain->iommu->dev); in qcom_iommu_unmap()
458 spin_lock_irqsave(&qcom_domain->pgtbl_lock, flags); in qcom_iommu_unmap()
460 spin_unlock_irqrestore(&qcom_domain->pgtbl_lock, flags); in qcom_iommu_unmap()
461 pm_runtime_put_sync(qcom_domain->iommu->dev); in qcom_iommu_unmap()
468 struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); in qcom_iommu_flush_iotlb_all() local
469 struct io_pgtable *pgtable = container_of(qcom_domain->pgtbl_ops, in qcom_iommu_flush_iotlb_all()
471 if (!qcom_domain->pgtbl_ops) in qcom_iommu_flush_iotlb_all()
474 pm_runtime_get_sync(qcom_domain->iommu->dev); in qcom_iommu_flush_iotlb_all()
476 pm_runtime_put_sync(qcom_domain->iommu->dev); in qcom_iommu_flush_iotlb_all()
490 struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); in qcom_iommu_iova_to_phys() local
491 struct io_pgtable_ops *ops = qcom_domain->pgtbl_ops; in qcom_iommu_iova_to_phys()
496 spin_lock_irqsave(&qcom_domain->pgtbl_lock, flags); in qcom_iommu_iova_to_phys()
498 spin_unlock_irqrestore(&qcom_domain->pgtbl_lock, flags); in qcom_iommu_iova_to_phys()