Home
last modified time | relevance | path

Searched refs:iommu_domain (Results 1 – 25 of 96) sorted by relevance

1234

/linux/drivers/iommu/
H A Dfsl_pamu_domain.c27 static struct fsl_dma_domain *to_fsl_dma_domain(struct iommu_domain *dom) in to_fsl_dma_domain()
29 return container_of(dom, struct fsl_dma_domain, iommu_domain); in to_fsl_dma_domain()
172 static phys_addr_t fsl_pamu_iova_to_phys(struct iommu_domain *domain, in fsl_pamu_iova_to_phys()
186 static void fsl_pamu_domain_free(struct iommu_domain *domain) in fsl_pamu_domain_free()
195 static struct iommu_domain *fsl_pamu_domain_alloc(unsigned type) in fsl_pamu_domain_alloc()
218 dma_domain->iommu_domain. geometry.aperture_start = 0; in fsl_pamu_domain_alloc()
219 dma_domain->iommu_domain.geometry.aperture_end = (1ULL << 36) - 1; in fsl_pamu_domain_alloc()
220 dma_domain->iommu_domain.geometry.force_aperture = true; in fsl_pamu_domain_alloc()
222 return &dma_domain->iommu_domain; in fsl_pamu_domain_alloc()
240 static int fsl_pamu_attach_device(struct iommu_domain *domain, in fsl_pamu_attach_device()
[all …]
H A Diommu.c62 struct iommu_domain *default_domain;
63 struct iommu_domain *blocking_domain;
68 struct iommu_domain *resetting_domain;
69 struct iommu_domain *domain;
107 static int __iommu_attach_device(struct iommu_domain *domain,
108 struct device *dev, struct iommu_domain *old);
109 static int __iommu_attach_group(struct iommu_domain *domain,
111 static struct iommu_domain *__iommu_paging_domain_alloc_flags(struct device *dev,
121 struct iommu_domain *new_domain,
122 struct iommu_domain *old_domain,
[all …]
H A Dsprd-iommu.c78 struct iommu_domain domain;
86 static struct sprd_iommu_domain *to_sprd_domain(struct iommu_domain *dom) in to_sprd_domain()
129 sprd_iommu_pgt_size(struct iommu_domain *domain) in sprd_iommu_pgt_size()
136 static struct iommu_domain *sprd_iommu_domain_alloc_paging(struct device *dev) in sprd_iommu_domain_alloc_paging()
241 static void sprd_iommu_domain_free(struct iommu_domain *domain) in sprd_iommu_domain_free()
249 static int sprd_iommu_attach_device(struct iommu_domain *domain, in sprd_iommu_attach_device()
251 struct iommu_domain *old) in sprd_iommu_attach_device()
287 static int sprd_iommu_map(struct iommu_domain *domain, unsigned long iova, in sprd_iommu_map()
324 static size_t sprd_iommu_unmap(struct iommu_domain *domain, unsigned long iova, in sprd_iommu_unmap()
347 static int sprd_iommu_sync_map(struct iommu_domain *domain, in sprd_iommu_sync_map()
[all …]
H A Ds390-iommu.c28 struct iommu_domain domain;
37 static struct iommu_domain blocking_domain;
495 static struct s390_domain *to_s390_domain(struct iommu_domain *dom) in to_s390_domain()
528 static struct iommu_domain *s390_domain_alloc_paging(struct device *dev) in s390_domain_alloc_paging()
579 static void s390_domain_free(struct iommu_domain *domain) in s390_domain_free()
591 struct iommu_domain *domain) in zdev_s390_domain_update()
633 struct iommu_domain *domain, u8 *status) in s390_iommu_domain_reg_ioat()
672 static int blocking_domain_attach_device(struct iommu_domain *domain, in blocking_domain_attach_device()
674 struct iommu_domain *old) in blocking_domain_attach_device()
697 static int s390_iommu_attach_device(struct iommu_domain *domain, in s390_iommu_attach_device()
[all …]
H A Dexynos-iommu.c30 static struct iommu_domain exynos_identity_domain;
239 struct iommu_domain *domain; /* domain this device is attached */
255 struct iommu_domain domain; /* generic domain data structure */
423 static struct exynos_iommu_domain *to_exynos_domain(struct iommu_domain *dom) in to_exynos_domain()
893 static struct iommu_domain *exynos_iommu_domain_alloc_paging(struct device *dev) in exynos_iommu_domain_alloc_paging()
946 static void exynos_iommu_domain_free(struct iommu_domain *iommu_domain) in exynos_iommu_domain_free() argument
948 struct exynos_iommu_domain *domain = to_exynos_domain(iommu_domain); in exynos_iommu_domain_free()
986 static int exynos_iommu_identity_attach(struct iommu_domain *identity_domain, in exynos_iommu_identity_attach()
988 struct iommu_domain *old) in exynos_iommu_identity_attach()
1033 static struct iommu_domain exynos_identity_domain = {
[all …]
H A Dmtk_iommu_v1.c40 struct iommu_domain *domain;
123 struct iommu_domain domain;
143 static struct mtk_iommu_v1_domain *to_mtk_domain(struct iommu_domain *dom) in to_mtk_domain()
283 static struct iommu_domain *mtk_iommu_v1_domain_alloc_paging(struct device *dev) in mtk_iommu_v1_domain_alloc_paging()
296 static void mtk_iommu_v1_domain_free(struct iommu_domain *domain) in mtk_iommu_v1_domain_free()
306 static int mtk_iommu_v1_attach_device(struct iommu_domain *domain, in mtk_iommu_v1_attach_device()
308 struct iommu_domain *old) in mtk_iommu_v1_attach_device()
333 static int mtk_iommu_v1_identity_attach(struct iommu_domain *identity_domain, in mtk_iommu_v1_identity_attach()
335 struct iommu_domain *old) in mtk_iommu_v1_identity_attach()
347 static struct iommu_domain mtk_iommu_v1_identity_domain = {
[all …]
H A Dsun50i-iommu.c111 struct iommu_domain *domain;
116 struct iommu_domain domain;
128 static struct sun50i_iommu_domain *to_sun50i_domain(struct iommu_domain *domain) in to_sun50i_domain()
384 static void sun50i_iommu_flush_iotlb_all(struct iommu_domain *domain) in sun50i_iommu_flush_iotlb_all()
406 static int sun50i_iommu_iotlb_sync_map(struct iommu_domain *domain, in sun50i_iommu_iotlb_sync_map()
420 static void sun50i_iommu_iotlb_sync(struct iommu_domain *domain, in sun50i_iommu_iotlb_sync()
595 static int sun50i_iommu_map(struct iommu_domain *domain, unsigned long iova, in sun50i_iommu_map()
638 static size_t sun50i_iommu_unmap(struct iommu_domain *domain, unsigned long iova, in sun50i_iommu_unmap()
662 static phys_addr_t sun50i_iommu_iova_to_phys(struct iommu_domain *domain, in sun50i_iommu_iova_to_phys()
684 static struct iommu_domain *
[all …]
H A Dmsm_iommu.c42 struct iommu_domain domain;
49 static struct msm_priv *to_msm_priv(struct iommu_domain *dom) in to_msm_priv()
305 static struct iommu_domain *msm_iommu_domain_alloc_paging(struct device *dev) in msm_iommu_domain_alloc_paging()
328 static void msm_iommu_domain_free(struct iommu_domain *domain) in msm_iommu_domain_free()
394 static int msm_iommu_attach_dev(struct iommu_domain *domain, struct device *dev, in msm_iommu_attach_dev()
395 struct iommu_domain *old) in msm_iommu_attach_dev()
444 static int msm_iommu_identity_attach(struct iommu_domain *identity_domain, in msm_iommu_identity_attach()
446 struct iommu_domain *old) in msm_iommu_identity_attach()
481 static struct iommu_domain msm_iommu_identity_domain = {
486 static int msm_iommu_map(struct iommu_domain *domain, unsigned long iova, in msm_iommu_map()
[all …]
H A Dipmmu-vmsa.c72 struct iommu_domain io_domain;
81 static struct ipmmu_vmsa_domain *to_vmsa_domain(struct iommu_domain *dom) in to_vmsa_domain()
565 static struct iommu_domain *ipmmu_domain_alloc_paging(struct device *dev) in ipmmu_domain_alloc_paging()
579 static void ipmmu_domain_free(struct iommu_domain *io_domain) in ipmmu_domain_free()
592 static int ipmmu_attach_device(struct iommu_domain *io_domain, in ipmmu_attach_device()
593 struct device *dev, struct iommu_domain *old) in ipmmu_attach_device()
639 static int ipmmu_iommu_identity_attach(struct iommu_domain *identity_domain, in ipmmu_iommu_identity_attach()
641 struct iommu_domain *old) in ipmmu_iommu_identity_attach()
664 static struct iommu_domain ipmmu_iommu_identity_domain = {
669 static int ipmmu_map(struct iommu_domain *io_domain, unsigned long iova, in ipmmu_map()
[all …]
H A Diommu-sva.c16 static struct iommu_domain *iommu_sva_domain_alloc(struct device *dev,
77 struct iommu_domain *domain; in iommu_sva_bind_device()
172 struct iommu_domain *domain = handle->handle.domain; in iommu_sva_unbind_device()
201 struct iommu_domain *domain = handle->handle.domain; in iommu_sva_get_pasid()
309 static struct iommu_domain *iommu_sva_domain_alloc(struct device *dev, in iommu_sva_domain_alloc()
313 struct iommu_domain *domain; in iommu_sva_domain_alloc()
H A Ddma-iommu.c74 struct iommu_domain *fq_domain;
332 int iommu_dma_init_fq(struct iommu_domain *domain) in iommu_dma_init_fq()
368 int iommu_get_dma_cookie(struct iommu_domain *domain) in iommu_get_dma_cookie()
397 int iommu_get_msi_cookie(struct iommu_domain *domain, dma_addr_t base) in iommu_get_msi_cookie()
423 void iommu_put_dma_cookie(struct iommu_domain *domain) in iommu_put_dma_cookie()
441 void iommu_put_msi_cookie(struct iommu_domain *domain) in iommu_put_msi_cookie()
553 struct iommu_domain *domain) in iova_reserve_iommu_regions()
660 static int iommu_dma_init_domain(struct iommu_domain *domain, struct device *dev) in iommu_dma_init_domain()
749 static dma_addr_t iommu_dma_alloc_iova(struct iommu_domain *domain, in iommu_dma_alloc_iova()
795 static void iommu_dma_free_iova(struct iommu_domain *domain, dma_addr_t iova, in iommu_dma_free_iova()
[all …]
H A Dapple-dart.c273 struct iommu_domain domain;
307 static struct apple_dart_domain *to_dart_domain(struct iommu_domain *dom) in to_dart_domain()
513 static void apple_dart_flush_iotlb_all(struct iommu_domain *domain) in apple_dart_flush_iotlb_all()
518 static void apple_dart_iotlb_sync(struct iommu_domain *domain, in apple_dart_iotlb_sync()
524 static int apple_dart_iotlb_sync_map(struct iommu_domain *domain, in apple_dart_iotlb_sync_map()
531 static phys_addr_t apple_dart_iova_to_phys(struct iommu_domain *domain, in apple_dart_iova_to_phys()
543 static int apple_dart_map_pages(struct iommu_domain *domain, unsigned long iova, in apple_dart_map_pages()
558 static size_t apple_dart_unmap_pages(struct iommu_domain *domain, in apple_dart_unmap_pages()
674 static int apple_dart_attach_dev_paging(struct iommu_domain *domain, in apple_dart_attach_dev_paging()
676 struct iommu_domain *old) in apple_dart_attach_dev_paging()
[all …]
H A Dvirtio-iommu.c64 struct iommu_domain domain;
657 static struct iommu_domain *viommu_domain_alloc_paging(struct device *dev) in viommu_domain_alloc_paging()
698 static void viommu_domain_free(struct iommu_domain *domain) in viommu_domain_free()
711 static struct iommu_domain *viommu_domain_alloc_identity(struct device *dev) in viommu_domain_alloc_identity()
714 struct iommu_domain *domain; in viommu_domain_alloc_identity()
733 static int viommu_attach_dev(struct iommu_domain *domain, struct device *dev, in viommu_attach_dev()
734 struct iommu_domain *old) in viommu_attach_dev()
784 static int viommu_attach_identity_domain(struct iommu_domain *domain, in viommu_attach_identity_domain()
786 struct iommu_domain *old) in viommu_attach_identity_domain()
842 static int viommu_map_pages(struct iommu_domain *domain, unsigned long iova, in viommu_map_pages()
[all …]
/linux/include/linux/
H A Domap-iommu.h13 struct iommu_domain;
19 int omap_iommu_domain_deactivate(struct iommu_domain *domain);
20 int omap_iommu_domain_activate(struct iommu_domain *domain);
25 static inline int omap_iommu_domain_deactivate(struct iommu_domain *domain) in omap_iommu_domain_deactivate()
30 static inline int omap_iommu_domain_activate(struct iommu_domain *domain) in omap_iommu_domain_activate()
/linux/drivers/soc/fsl/qbman/
H A Dqman_portal.c51 pcfg->iommu_domain = iommu_paging_domain_alloc(dev); in portal_set_cpu()
52 if (IS_ERR(pcfg->iommu_domain)) { in portal_set_cpu()
54 pcfg->iommu_domain = NULL; in portal_set_cpu()
57 ret = fsl_pamu_configure_l1_stash(pcfg->iommu_domain, cpu); in portal_set_cpu()
63 ret = iommu_attach_device(pcfg->iommu_domain, dev); in portal_set_cpu()
78 iommu_domain_free(pcfg->iommu_domain); in portal_set_cpu()
79 pcfg->iommu_domain = NULL; in portal_set_cpu()
91 pcfg->iommu_domain = NULL; in init_pcfg()
131 if (pcfg->iommu_domain) { in qman_portal_update_sdest()
132 if (fsl_pamu_configure_l1_stash(pcfg->iommu_domain, cpu) < 0) { in qman_portal_update_sdest()
/linux/drivers/iommu/intel/
H A Dnested.c21 static int intel_nested_attach_dev(struct iommu_domain *domain, in intel_nested_attach_dev()
22 struct device *dev, struct iommu_domain *old) in intel_nested_attach_dev()
79 static void intel_nested_domain_free(struct iommu_domain *domain) in intel_nested_domain_free()
91 static int intel_nested_cache_invalidate_user(struct iommu_domain *domain, in intel_nested_cache_invalidate_user()
137 struct iommu_domain *old) in domain_setup_nested()
145 static int intel_nested_set_dev_pasid(struct iommu_domain *domain, in intel_nested_set_dev_pasid()
147 struct iommu_domain *old) in intel_nested_set_dev_pasid()
195 struct iommu_domain *
196 intel_iommu_domain_alloc_nested(struct device *dev, struct iommu_domain *parent, in intel_iommu_domain_alloc_nested()
H A Dsvm.c148 static int intel_svm_set_dev_pasid(struct iommu_domain *domain, in intel_svm_set_dev_pasid()
150 struct iommu_domain *old) in intel_svm_set_dev_pasid()
194 static void intel_svm_domain_free(struct iommu_domain *domain) in intel_svm_domain_free()
207 struct iommu_domain *intel_svm_domain_alloc(struct device *dev, in intel_svm_domain_alloc()
/linux/drivers/iommu/riscv/
H A Diommu.c809 struct iommu_domain domain;
819 #define iommu_domain_to_riscv(iommu_domain) \ argument
820 container_of(iommu_domain, struct riscv_iommu_domain, domain)
1068 static void riscv_iommu_iotlb_flush_all(struct iommu_domain *iommu_domain) in riscv_iommu_iotlb_flush_all() argument
1070 struct riscv_iommu_domain *domain = iommu_domain_to_riscv(iommu_domain); in riscv_iommu_iotlb_flush_all()
1075 static void riscv_iommu_iotlb_sync(struct iommu_domain *iommu_domain, in riscv_iommu_iotlb_sync() argument
1078 struct riscv_iommu_domain *domain = iommu_domain_to_riscv(iommu_domain); in riscv_iommu_iotlb_sync()
1190 static int riscv_iommu_map_pages(struct iommu_domain *iommu_domain, in riscv_iommu_map_pages() argument
1195 struct riscv_iommu_domain *domain = iommu_domain_to_riscv(iommu_domain); in riscv_iommu_map_pages()
1246 static size_t riscv_iommu_unmap_pages(struct iommu_domain *iommu_domain, in riscv_iommu_unmap_pages() argument
[all …]
/linux/drivers/iommu/amd/
H A Damd_iommu.h51 struct iommu_domain *amd_iommu_domain_alloc_sva(struct device *dev,
53 void amd_iommu_domain_free(struct iommu_domain *dom);
54 int iommu_sva_set_dev_pasid(struct iommu_domain *domain,
56 struct iommu_domain *old);
58 struct iommu_domain *domain);
167 static inline struct protection_domain *to_pdomain(struct iommu_domain *dom) in to_pdomain()
222 struct iommu_domain *
H A Dpasid.c102 int iommu_sva_set_dev_pasid(struct iommu_domain *domain, in iommu_sva_set_dev_pasid()
104 struct iommu_domain *old) in iommu_sva_set_dev_pasid()
149 struct iommu_domain *domain) in amd_iommu_remove_dev_pasid()
167 static void iommu_sva_domain_free(struct iommu_domain *domain) in iommu_sva_domain_free()
182 struct iommu_domain *amd_iommu_domain_alloc_sva(struct device *dev, in amd_iommu_domain_alloc_sva()
H A Dnested.c16 static inline struct nested_domain *to_ndomain(struct iommu_domain *dom) in to_ndomain()
93 struct iommu_domain *
186 static void set_dte_nested(struct amd_iommu *iommu, struct iommu_domain *dom, in set_dte_nested()
232 static int nested_attach_device(struct iommu_domain *dom, struct device *dev, in nested_attach_device()
233 struct iommu_domain *old) in nested_attach_device()
258 static void nested_domain_free(struct iommu_domain *dom) in nested_domain_free()
/linux/drivers/iommu/arm/arm-smmu/
H A Dqcom_iommu.c63 struct iommu_domain *domain;
70 struct iommu_domain domain;
75 static struct qcom_iommu_domain *to_qcom_iommu_domain(struct iommu_domain *dom) in to_qcom_iommu_domain()
216 static int qcom_iommu_init_domain(struct iommu_domain *domain, in qcom_iommu_init_domain()
323 static struct iommu_domain *qcom_iommu_domain_alloc_paging(struct device *dev) in qcom_iommu_domain_alloc_paging()
343 static void qcom_iommu_domain_free(struct iommu_domain *domain) in qcom_iommu_domain_free()
362 static int qcom_iommu_attach_dev(struct iommu_domain *domain, in qcom_iommu_attach_dev()
363 struct device *dev, struct iommu_domain *old) in qcom_iommu_attach_dev()
391 static int qcom_iommu_identity_attach(struct iommu_domain *identity_domain, in qcom_iommu_identity_attach()
393 struct iommu_domain *old) in qcom_iommu_identity_attach()
[all …]
/linux/include/linux/generic_pt/
H A Diommu.h41 struct iommu_domain domain;
195 phys_addr_t pt_iommu_##fmt##_iova_to_phys(struct iommu_domain *domain, \
197 int pt_iommu_##fmt##_map_pages(struct iommu_domain *domain, \
202 struct iommu_domain *domain, unsigned long iova, \
206 struct iommu_domain *domain, unsigned long iova, size_t size, \
/linux/drivers/iommu/generic_pt/
H A DKconfig30 related to struct iommu_domain using GENERIC_PT. It provides a single
39 iommu_domain implementation for the AMD v1 page table. AMDv1 is the
49 iommu_domain implementation for the Intel VT-d's 64 bit 3/4/5
59 iommu_domain implementation for the x86 64-bit 4/5 level page table.
76 iommu_domain related functions.
/linux/arch/powerpc/include/asm/
H A Dfsl_pamu_stash.h10 struct iommu_domain;
19 int fsl_pamu_configure_l1_stash(struct iommu_domain *domain, u32 cpu);

1234