/kernel/linux/linux-5.10/include/linux/ |
H A D | iommu.h | 39 struct iommu_domain; 48 typedef int (*iommu_fault_handler_t)(struct iommu_domain *, 82 struct iommu_domain { struct 237 struct iommu_domain *(*domain_alloc)(unsigned iommu_domain_type); 238 void (*domain_free)(struct iommu_domain *); 240 int (*attach_dev)(struct iommu_domain *domain, struct device *dev); 241 void (*detach_dev)(struct iommu_domain *domain, struct device *dev); 242 int (*map)(struct iommu_domain *domain, unsigned long iova, 244 size_t (*unmap)(struct iommu_domain *domain, unsigned long iova, 246 void (*flush_iotlb_all)(struct iommu_domain *domai [all...] |
H A D | dma-iommu.h | 17 int iommu_get_dma_cookie(struct iommu_domain *domain); 18 int iommu_get_msi_cookie(struct iommu_domain *domain, dma_addr_t base); 19 void iommu_put_dma_cookie(struct iommu_domain *domain); 42 struct iommu_domain; 52 static inline int iommu_get_dma_cookie(struct iommu_domain *domain) in iommu_get_dma_cookie() 57 static inline int iommu_get_msi_cookie(struct iommu_domain *domain, dma_addr_t base) in iommu_get_msi_cookie() 62 static inline void iommu_put_dma_cookie(struct iommu_domain *domain) in iommu_put_dma_cookie()
|
H A D | omap-iommu.h | 13 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()
|
/kernel/linux/linux-6.6/include/linux/ |
H A D | iommu.h | 38 struct iommu_domain; 49 typedef int (*iommu_fault_handler_t)(struct iommu_domain *, 95 struct iommu_domain { struct 116 static inline bool iommu_is_dma_domain(struct iommu_domain *domain) in iommu_is_dma_domain() 269 struct iommu_domain *(*domain_alloc)(unsigned iommu_domain_type); 333 int (*attach_dev)(struct iommu_domain *domain, struct device *dev); 334 int (*set_dev_pasid)(struct iommu_domain *domain, struct device *dev, 337 int (*map)(struct iommu_domain *domain, unsigned long iova, 339 int (*map_pages)(struct iommu_domain *domain, unsigned long iova, 342 size_t (*unmap)(struct iommu_domain *domai [all...] |
H A D | omap-iommu.h | 13 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()
|
/kernel/linux/linux-6.6/drivers/iommu/ |
H A D | dma-iommu.h | 12 int iommu_get_dma_cookie(struct iommu_domain *domain); 13 void iommu_put_dma_cookie(struct iommu_domain *domain); 15 int iommu_dma_init_fq(struct iommu_domain *domain); 27 static inline int iommu_dma_init_fq(struct iommu_domain *domain) in iommu_dma_init_fq() 32 static inline int iommu_get_dma_cookie(struct iommu_domain *domain) in iommu_get_dma_cookie() 37 static inline void iommu_put_dma_cookie(struct iommu_domain *domain) in iommu_put_dma_cookie()
|
H A D | fsl_pamu_domain.c | 27 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() 40 pr_debug("Couldn't create fsl iommu_domain cache\n"); in iommu_init_mempool() 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() 211 dma_domain->iommu_domain. geometry.aperture_start = 0; in fsl_pamu_domain_alloc() 212 dma_domain->iommu_domain.geometry.aperture_end = (1ULL << 36) - 1; in fsl_pamu_domain_alloc() 213 dma_domain->iommu_domain.geometry.force_aperture = true; in fsl_pamu_domain_alloc() 215 return &dma_domain->iommu_domain; in fsl_pamu_domain_alloc() [all...] |
H A D | tegra-gart.c | 44 struct iommu_domain *active_domain; /* current active domain */ 106 static int gart_iommu_attach_dev(struct iommu_domain *domain, in gart_iommu_attach_dev() 129 struct iommu_domain *domain = iommu_get_domain_for_dev(dev); in gart_iommu_set_platform_dma() 144 static struct iommu_domain *gart_iommu_domain_alloc(unsigned type) in gart_iommu_domain_alloc() 146 struct iommu_domain *domain; in gart_iommu_domain_alloc() 161 static void gart_iommu_domain_free(struct iommu_domain *domain) in gart_iommu_domain_free() 180 static int gart_iommu_map(struct iommu_domain *domain, unsigned long iova, in gart_iommu_map() 209 static size_t gart_iommu_unmap(struct iommu_domain *domain, unsigned long iova, in gart_iommu_unmap() 225 static phys_addr_t gart_iommu_iova_to_phys(struct iommu_domain *domain, in gart_iommu_iova_to_phys() 255 static void gart_iommu_sync_map(struct iommu_domain *domai [all...] |
H A D | iommu.c | 60 struct iommu_domain *default_domain; 61 struct iommu_domain *blocking_domain; 62 struct iommu_domain *domain; 99 static struct iommu_domain *__iommu_domain_alloc(const struct bus_type *bus, 101 static int __iommu_attach_device(struct iommu_domain *domain, 103 static int __iommu_attach_group(struct iommu_domain *domain, 112 struct iommu_domain *new_domain, 115 struct iommu_domain *new_domain, 118 struct iommu_domain *new_domain) in __iommu_group_set_domain() 123 struct iommu_domain *new_domai in __iommu_group_set_domain_nofail() [all...] |
H A D | sprd-iommu.c | 79 struct iommu_domain domain; 87 static struct sprd_iommu_domain *to_sprd_domain(struct iommu_domain *dom) in to_sprd_domain() 130 sprd_iommu_pgt_size(struct iommu_domain *domain) in sprd_iommu_pgt_size() 137 static struct iommu_domain *sprd_iommu_domain_alloc(unsigned int domain_type) in sprd_iommu_domain_alloc() 243 static void sprd_iommu_domain_free(struct iommu_domain *domain) in sprd_iommu_domain_free() 251 static int sprd_iommu_attach_device(struct iommu_domain *domain, in sprd_iommu_attach_device() 288 static int sprd_iommu_map(struct iommu_domain *domain, unsigned long iova, in sprd_iommu_map() 325 static size_t sprd_iommu_unmap(struct iommu_domain *domain, unsigned long iova, in sprd_iommu_unmap() 348 static void sprd_iommu_sync_map(struct iommu_domain *domain, in sprd_iommu_sync_map() 363 static void sprd_iommu_sync(struct iommu_domain *domai [all...] |
H A D | s390-iommu.c | 20 struct iommu_domain domain; 27 static struct s390_domain *to_s390_domain(struct iommu_domain *dom) in to_s390_domain() 42 static struct iommu_domain *s390_domain_alloc(unsigned domain_type) in s390_domain_alloc() 76 static void s390_domain_free(struct iommu_domain *domain) in s390_domain_free() 104 static int s390_iommu_attach_device(struct iommu_domain *domain, in s390_iommu_attach_device() 208 static void s390_iommu_flush_iotlb_all(struct iommu_domain *domain) in s390_iommu_flush_iotlb_all() 221 static void s390_iommu_iotlb_sync(struct iommu_domain *domain, in s390_iommu_iotlb_sync() 240 static void s390_iommu_iotlb_sync_map(struct iommu_domain *domain, in s390_iommu_iotlb_sync_map() 314 static int s390_iommu_map_pages(struct iommu_domain *domain, in s390_iommu_map_pages() 347 static phys_addr_t s390_iommu_iova_to_phys(struct iommu_domain *domai [all...] |
H A D | exynos-iommu.c | 235 struct iommu_domain *domain; /* domain this device is attached */ 240 * This structure exynos specific generalization of struct iommu_domain. 251 struct iommu_domain domain; /* generic domain data structure */ 419 static struct exynos_iommu_domain *to_exynos_domain(struct iommu_domain *dom) in to_exynos_domain() 889 static struct iommu_domain *exynos_iommu_domain_alloc(unsigned type) in exynos_iommu_domain_alloc() 943 static void exynos_iommu_domain_free(struct iommu_domain *iommu_domain) in exynos_iommu_domain_free() argument 945 struct exynos_iommu_domain *domain = to_exynos_domain(iommu_domain); in exynos_iommu_domain_free() 983 static void exynos_iommu_detach_device(struct iommu_domain *iommu_domain, in exynos_iommu_detach_device() argument 1021 exynos_iommu_attach_device(struct iommu_domain *iommu_domain, struct device *dev) exynos_iommu_attach_device() argument 1220 exynos_iommu_map(struct iommu_domain *iommu_domain, unsigned long l_iova, phys_addr_t paddr, size_t size, int prot, gfp_t gfp) exynos_iommu_map() argument 1276 exynos_iommu_unmap(struct iommu_domain *iommu_domain, unsigned long l_iova, size_t size, struct iommu_iotlb_gather *gather) exynos_iommu_unmap() argument 1356 exynos_iommu_iova_to_phys(struct iommu_domain *iommu_domain, dma_addr_t iova) exynos_iommu_iova_to_phys() argument [all...] |
/kernel/linux/linux-5.10/drivers/iommu/amd/ |
H A D | amd_iommu.h | 42 struct iommu_domain; 56 extern void amd_iommu_domain_direct_map(struct iommu_domain *dom); 57 extern int amd_iommu_domain_enable_v2(struct iommu_domain *dom, int pasids); 58 extern int amd_iommu_flush_page(struct iommu_domain *dom, u32 pasid, 60 extern int amd_iommu_flush_tlb(struct iommu_domain *dom, u32 pasid); 61 extern int amd_iommu_domain_set_gcr3(struct iommu_domain *dom, u32 pasid, 63 extern int amd_iommu_domain_clear_gcr3(struct iommu_domain *dom, u32 pasid); 64 extern struct iommu_domain *amd_iommu_get_v2_domain(struct pci_dev *pdev); 104 extern bool amd_iommu_is_attach_deferred(struct iommu_domain *domain,
|
/kernel/linux/linux-5.10/drivers/soc/fsl/qbman/ |
H A D | qman_portal.c | 54 pcfg->iommu_domain = iommu_domain_alloc(&platform_bus_type); in portal_set_cpu() 55 if (!pcfg->iommu_domain) { in portal_set_cpu() 63 ret = iommu_domain_set_attr(pcfg->iommu_domain, DOMAIN_ATTR_GEOMETRY, in portal_set_cpu() 70 ret = iommu_domain_set_attr(pcfg->iommu_domain, DOMAIN_ATTR_WINDOWS, in portal_set_cpu() 79 ret = iommu_domain_set_attr(pcfg->iommu_domain, in portal_set_cpu() 87 ret = iommu_domain_window_enable(pcfg->iommu_domain, 0, 0, 1ULL << 36, in portal_set_cpu() 94 ret = iommu_attach_device(pcfg->iommu_domain, dev); in portal_set_cpu() 100 ret = iommu_domain_set_attr(pcfg->iommu_domain, in portal_set_cpu() 117 iommu_detach_device(pcfg->iommu_domain, NULL); in portal_set_cpu() 119 iommu_domain_free(pcfg->iommu_domain); in portal_set_cpu() [all...] |
/kernel/linux/linux-6.6/drivers/soc/fsl/qbman/ |
H A D | qman_portal.c | 51 pcfg->iommu_domain = iommu_domain_alloc(&platform_bus_type); in portal_set_cpu() 52 if (!pcfg->iommu_domain) { in portal_set_cpu() 56 ret = fsl_pamu_configure_l1_stash(pcfg->iommu_domain, cpu); in portal_set_cpu() 62 ret = iommu_attach_device(pcfg->iommu_domain, dev); in portal_set_cpu() 77 iommu_domain_free(pcfg->iommu_domain); in portal_set_cpu() 78 pcfg->iommu_domain = NULL; in portal_set_cpu() 90 pcfg->iommu_domain = NULL; in init_pcfg() 130 if (pcfg->iommu_domain) { in qman_portal_update_sdest() 131 if (fsl_pamu_configure_l1_stash(pcfg->iommu_domain, cpu) < 0) { in qman_portal_update_sdest()
|
/kernel/linux/linux-5.10/drivers/iommu/ |
H A D | tegra-gart.c | 44 struct iommu_domain *active_domain; /* current active domain */ 106 static int gart_iommu_attach_dev(struct iommu_domain *domain, in gart_iommu_attach_dev() 127 static void gart_iommu_detach_dev(struct iommu_domain *domain, in gart_iommu_detach_dev() 144 static struct iommu_domain *gart_iommu_domain_alloc(unsigned type) in gart_iommu_domain_alloc() 146 struct iommu_domain *domain; in gart_iommu_domain_alloc() 161 static void gart_iommu_domain_free(struct iommu_domain *domain) in gart_iommu_domain_free() 180 static int gart_iommu_map(struct iommu_domain *domain, unsigned long iova, in gart_iommu_map() 209 static size_t gart_iommu_unmap(struct iommu_domain *domain, unsigned long iova, in gart_iommu_unmap() 225 static phys_addr_t gart_iommu_iova_to_phys(struct iommu_domain *domain, in gart_iommu_iova_to_phys() 264 static void gart_iommu_sync_map(struct iommu_domain *domai [all...] |
H A D | s390-iommu.c | 25 struct iommu_domain domain; 37 static struct s390_domain *to_s390_domain(struct iommu_domain *dom) in to_s390_domain() 54 static struct iommu_domain *s390_domain_alloc(unsigned domain_type) in s390_domain_alloc() 78 static void s390_domain_free(struct iommu_domain *domain) in s390_domain_free() 86 static int s390_iommu_attach_device(struct iommu_domain *domain, in s390_iommu_attach_device() 138 static void s390_iommu_detach_device(struct iommu_domain *domain, in s390_iommu_detach_device() 179 struct iommu_domain *domain; in s390_iommu_release_device() 257 static int s390_iommu_map(struct iommu_domain *domain, unsigned long iova, in s390_iommu_map() 275 static phys_addr_t s390_iommu_iova_to_phys(struct iommu_domain *domain, in s390_iommu_iova_to_phys() 306 static size_t s390_iommu_unmap(struct iommu_domain *domai [all...] |
H A D | fsl_pamu_domain.c | 26 static struct fsl_dma_domain *to_fsl_dma_domain(struct iommu_domain *dom) in to_fsl_dma_domain() 28 return container_of(dom, struct fsl_dma_domain, iommu_domain); in to_fsl_dma_domain() 39 pr_debug("Couldn't create fsl iommu_domain cache\n"); in iommu_init_mempool() 63 geom = &dma_domain->iommu_domain.geometry; in get_phys_addr() 121 phys_addr_t wnd_addr = dma_domain->iommu_domain.geometry.aperture_start; in map_win() 170 wnd_addr = dma_domain->iommu_domain.geometry.aperture_start; in update_liodn() 379 static phys_addr_t fsl_pamu_iova_to_phys(struct iommu_domain *domain, in fsl_pamu_iova_to_phys() 396 static void fsl_pamu_domain_free(struct iommu_domain *domain) in fsl_pamu_domain_free() 409 static struct iommu_domain *fsl_pamu_domain_alloc(unsigned type) in fsl_pamu_domain_alloc() 422 dma_domain->iommu_domain in fsl_pamu_domain_alloc() [all...] |
H A D | iommu.c | 45 struct iommu_domain *default_domain; 46 struct iommu_domain *domain; 85 static struct iommu_domain *__iommu_domain_alloc(struct bus_type *bus, 87 static int __iommu_attach_device(struct iommu_domain *domain, 89 static int __iommu_attach_group(struct iommu_domain *domain, 91 static void __iommu_detach_group(struct iommu_domain *domain, 728 struct iommu_domain *domain = group->default_domain; in iommu_create_device_direct_mappings() 780 static bool iommu_is_attach_deferred(struct iommu_domain *domain, in iommu_is_attach_deferred() 1204 struct iommu_domain *domain = iommu_get_domain_for_dev(dev); in iommu_page_response() 1485 struct iommu_domain *do in iommu_group_alloc_default_domain() [all...] |
H A D | exynos-iommu.c | 236 struct iommu_domain *domain; /* domain this device is attached */ 241 * This structure exynos specific generalization of struct iommu_domain. 252 struct iommu_domain domain; /* generic domain data structure */ 281 static struct exynos_iommu_domain *to_exynos_domain(struct iommu_domain *dom) in to_exynos_domain() 737 static struct iommu_domain *exynos_iommu_domain_alloc(unsigned type) in exynos_iommu_domain_alloc() 798 static void exynos_iommu_domain_free(struct iommu_domain *iommu_domain) in exynos_iommu_domain_free() argument 800 struct exynos_iommu_domain *domain = to_exynos_domain(iommu_domain); in exynos_iommu_domain_free() 820 if (iommu_domain->type == IOMMU_DOMAIN_DMA) in exynos_iommu_domain_free() 821 iommu_put_dma_cookie(iommu_domain); in exynos_iommu_domain_free() 841 exynos_iommu_detach_device(struct iommu_domain *iommu_domain, struct device *dev) exynos_iommu_detach_device() argument 879 exynos_iommu_attach_device(struct iommu_domain *iommu_domain, struct device *dev) exynos_iommu_attach_device() argument 1078 exynos_iommu_map(struct iommu_domain *iommu_domain, unsigned long l_iova, phys_addr_t paddr, size_t size, int prot, gfp_t gfp) exynos_iommu_map() argument 1134 exynos_iommu_unmap(struct iommu_domain *iommu_domain, unsigned long l_iova, size_t size, struct iommu_iotlb_gather *gather) exynos_iommu_unmap() argument 1214 exynos_iommu_iova_to_phys(struct iommu_domain *iommu_domain, dma_addr_t iova) exynos_iommu_iova_to_phys() argument [all...] |
/kernel/linux/linux-6.6/drivers/iommu/amd/ |
H A D | amd_iommu.h | 42 struct iommu_domain; 56 void amd_iommu_domain_direct_map(struct iommu_domain *dom); 57 int amd_iommu_domain_enable_v2(struct iommu_domain *dom, int pasids); 58 int amd_iommu_flush_page(struct iommu_domain *dom, u32 pasid, u64 address); 63 int amd_iommu_flush_tlb(struct iommu_domain *dom, u32 pasid); 64 int amd_iommu_domain_set_gcr3(struct iommu_domain *dom, u32 pasid, 66 int amd_iommu_domain_clear_gcr3(struct iommu_domain *dom, u32 pasid);
|
/kernel/linux/linux-6.6/drivers/media/platform/qcom/venus/ |
H A D | firmware.c | 151 struct iommu_domain *iommu; in venus_boot_no_tz() 159 iommu = core->fw.iommu_domain; in venus_boot_no_tz() 177 struct iommu_domain *iommu; in venus_shutdown_no_tz() 196 iommu = core->fw.iommu_domain; in venus_shutdown_no_tz() 286 struct iommu_domain *iommu_dom; in venus_firmware_init() 332 core->fw.iommu_domain = iommu_dom; in venus_firmware_init() 348 struct iommu_domain *iommu; in venus_firmware_deinit() 353 iommu = core->fw.iommu_domain; in venus_firmware_deinit() 357 if (core->fw.iommu_domain) { in venus_firmware_deinit() 359 core->fw.iommu_domain in venus_firmware_deinit() [all...] |
/kernel/linux/linux-5.10/drivers/media/platform/qcom/venus/ |
H A D | firmware.c | 132 struct iommu_domain *iommu; in venus_boot_no_tz() 140 iommu = core->fw.iommu_domain; in venus_boot_no_tz() 158 struct iommu_domain *iommu; in venus_shutdown_no_tz() 172 iommu = core->fw.iommu_domain; in venus_shutdown_no_tz() 238 struct iommu_domain *iommu_dom; in venus_firmware_init() 284 core->fw.iommu_domain = iommu_dom; in venus_firmware_init() 300 struct iommu_domain *iommu; in venus_firmware_deinit() 305 iommu = core->fw.iommu_domain; in venus_firmware_deinit()
|
/kernel/linux/linux-6.6/drivers/iommu/iommufd/ |
H A D | io_pagetable.h | 15 struct iommu_domain; 29 * storage_domain points at an arbitrary iommu_domain that is holding the PFNs 44 struct iommu_domain *storage_domain; 65 int iopt_area_fill_domain(struct iopt_area *area, struct iommu_domain *domain); 67 struct iommu_domain *domain); 69 struct iommu_domain *domain);
|
/kernel/linux/linux-6.6/arch/powerpc/include/asm/ |
H A D | fsl_pamu_stash.h | 10 struct iommu_domain; 19 int fsl_pamu_configure_l1_stash(struct iommu_domain *domain, u32 cpu);
|