/linux-master/arch/sparc/kernel/ |
H A D | iommu-common.c | 4 * Based almost entirely upon the powerpc iommu allocator. 10 #include <linux/iommu-helper.h> 13 #include <asm/iommu-common.h> 19 static inline bool need_flush(struct iommu_map_table *iommu) argument 21 return ((iommu->flags & IOMMU_NEED_FLUSH) != 0); 24 static inline void set_flush(struct iommu_map_table *iommu) argument 26 iommu->flags |= IOMMU_NEED_FLUSH; 29 static inline void clear_flush(struct iommu_map_table *iommu) argument 31 iommu->flags &= ~IOMMU_NEED_FLUSH; 52 void iommu_tbl_pool_init(struct iommu_map_table *iommu, argument 97 iommu_tbl_range_alloc(struct device *dev, struct iommu_map_table *iommu, unsigned long npages, unsigned long *handle, unsigned long mask, unsigned int align_order) argument 246 iommu_tbl_range_free(struct iommu_map_table *iommu, u64 dma_addr, unsigned long npages, unsigned long entry) argument [all...] |
H A D | iommu.c | 2 /* iommu.c: Generic sparc64 IOMMU support. 15 #include <linux/iommu-helper.h> 17 #include <asm/iommu-common.h> 23 #include <asm/iommu.h> 52 struct iommu *iommu = container_of(iommu_map_table, struct iommu, tbl); local 53 if (iommu->iommu_flushinv) { 54 iommu_write(iommu->iommu_flushinv, ~(u64)0); 59 tag = iommu 83 iopte_make_dummy(struct iommu *iommu, iopte_t *iopte) argument 93 iommu_table_init(struct iommu *iommu, int tsbsize, u32 dma_offset, u32 dma_addr_mask, int numa_node) argument 156 alloc_npages(struct device *dev, struct iommu *iommu, unsigned long npages) argument 170 iommu_alloc_ctx(struct iommu *iommu) argument 188 iommu_free_ctx(struct iommu *iommu, int ctx) argument 202 struct iommu *iommu; local 250 struct iommu *iommu; local 268 struct iommu *iommu; local 320 strbuf_flush(struct strbuf *strbuf, struct iommu *iommu, u32 vaddr, unsigned long ctx, unsigned long npages, enum dma_data_direction direction) argument 390 struct iommu *iommu; local 443 struct iommu *iommu; local 587 fetch_sg_ctx(struct iommu *iommu, struct scatterlist *sg) argument 612 struct iommu *iommu; local 661 struct iommu *iommu; local 699 struct iommu *iommu; local 743 struct iommu *iommu = dev->archdata.iommu; local [all...] |
/linux-master/drivers/iommu/ |
H A D | iommu-sysfs.c | 10 #include <linux/iommu.h> 38 .name = "iommu", 54 int iommu_device_sysfs_add(struct iommu_device *iommu, argument 62 iommu->dev = kzalloc(sizeof(*iommu->dev), GFP_KERNEL); 63 if (!iommu->dev) 66 device_initialize(iommu->dev); 68 iommu->dev->class = &iommu_class; 69 iommu->dev->parent = parent; 70 iommu 92 iommu_device_sysfs_remove(struct iommu_device *iommu) argument 106 iommu_device_link(struct iommu_device *iommu, struct device *link) argument 123 iommu_device_unlink(struct iommu_device *iommu, struct device *link) argument [all...] |
H A D | iommu-priv.h | 7 #include <linux/iommu.h> 17 return dev->iommu->iommu_dev->ops; 23 int iommu_device_register_bus(struct iommu_device *iommu, 27 void iommu_device_unregister_bus(struct iommu_device *iommu,
|
H A D | Makefile | 3 obj-$(CONFIG_IOMMU_API) += iommu.o 4 obj-$(CONFIG_IOMMU_API) += iommu-traces.o 5 obj-$(CONFIG_IOMMU_API) += iommu-sysfs.o 6 obj-$(CONFIG_IOMMU_DEBUGFS) += iommu-debugfs.o 7 obj-$(CONFIG_IOMMU_DMA) += dma-iommu.o 19 obj-$(CONFIG_OMAP_IOMMU) += omap-iommu.o 20 obj-$(CONFIG_OMAP_IOMMU_DEBUG) += omap-iommu-debug.o 21 obj-$(CONFIG_ROCKCHIP_IOMMU) += rockchip-iommu.o 22 obj-$(CONFIG_SUN50I_IOMMU) += sun50i-iommu.o 24 obj-$(CONFIG_EXYNOS_IOMMU) += exynos-iommu [all...] |
H A D | sun50i-iommu.c | 14 #include <linux/iommu.h> 99 struct iommu_device iommu; member in struct:sun50i_iommu 123 struct sun50i_iommu *iommu; member in struct:sun50i_iommu_domain 136 static u32 iommu_read(struct sun50i_iommu *iommu, u32 offset) argument 138 return readl(iommu->base + offset); 141 static void iommu_write(struct sun50i_iommu *iommu, u32 offset, u32 value) argument 143 writel(value, iommu->base + offset); 292 struct sun50i_iommu *iommu = sun50i_domain->iommu; local 296 dma_sync_single_for_device(iommu 299 sun50i_iommu_zap_iova(struct sun50i_iommu *iommu, unsigned long iova) argument 316 sun50i_iommu_zap_ptw_cache(struct sun50i_iommu *iommu, unsigned long iova) argument 332 sun50i_iommu_zap_range(struct sun50i_iommu *iommu, unsigned long iova, size_t size) argument 355 sun50i_iommu_flush_all_tlb(struct sun50i_iommu *iommu) argument 385 struct sun50i_iommu *iommu = sun50i_domain->iommu; local 408 struct sun50i_iommu *iommu = sun50i_domain->iommu; local 424 sun50i_iommu_enable(struct sun50i_iommu *iommu) argument 506 sun50i_iommu_disable(struct sun50i_iommu *iommu) argument 521 sun50i_iommu_alloc_page_table(struct sun50i_iommu *iommu, gfp_t gfp) argument 544 sun50i_iommu_free_page_table(struct sun50i_iommu *iommu, u32 *page_table) argument 556 struct sun50i_iommu *iommu = sun50i_domain->iommu; local 597 struct sun50i_iommu *iommu = sun50i_domain->iommu; local 711 sun50i_iommu_attach_domain(struct sun50i_iommu *iommu, struct sun50i_iommu_domain *sun50i_domain) argument 727 sun50i_iommu_detach_domain(struct sun50i_iommu *iommu, struct sun50i_iommu_domain *sun50i_domain) argument 763 struct sun50i_iommu *iommu = dev_iommu_priv_get(dev); local 790 struct sun50i_iommu *iommu; local 812 struct sun50i_iommu *iommu; local 851 sun50i_iommu_report_fault(struct sun50i_iommu *iommu, unsigned master, phys_addr_t iova, unsigned prot) argument 866 sun50i_iommu_handle_pt_irq(struct sun50i_iommu *iommu, unsigned addr_reg, unsigned blame_reg) argument 890 sun50i_iommu_handle_perm_irq(struct sun50i_iommu *iommu) argument 948 struct sun50i_iommu *iommu = dev_id; local 985 struct sun50i_iommu *iommu; local [all...] |
H A D | rockchip-iommu.c | 17 #include <linux/iommu.h> 113 struct iommu_device iommu; member in struct:rk_iommu 115 struct iommu_domain *domain; /* domain to which iommu is attached */ 120 struct rk_iommu *iommu; member in struct:rk_iommudata 141 * The Rockchip rk3288 iommu uses a 2-level page table. 150 * Each iommu device has a MMU_DTE_ADDR register that contains the physical 344 static void rk_iommu_command(struct rk_iommu *iommu, u32 command) argument 348 for (i = 0; i < iommu->num_mmu; i++) 349 writel(command, iommu->bases[i] + RK_MMU_COMMAND); 356 static void rk_iommu_zap_lines(struct rk_iommu *iommu, dma_addr_ argument 373 rk_iommu_is_stall_active(struct rk_iommu *iommu) argument 385 rk_iommu_is_paging_enabled(struct rk_iommu *iommu) argument 397 rk_iommu_is_reset_done(struct rk_iommu *iommu) argument 408 rk_iommu_enable_stall(struct rk_iommu *iommu) argument 433 rk_iommu_disable_stall(struct rk_iommu *iommu) argument 454 rk_iommu_enable_paging(struct rk_iommu *iommu) argument 475 rk_iommu_disable_paging(struct rk_iommu *iommu) argument 496 rk_iommu_force_reset(struct rk_iommu *iommu) argument 532 log_iova(struct rk_iommu *iommu, int index, dma_addr_t iova) argument 581 struct rk_iommu *iommu = dev_id; local 685 struct rk_iommu *iommu; local 907 rk_iommu_disable(struct rk_iommu *iommu) argument 924 rk_iommu_enable(struct rk_iommu *iommu) argument 961 struct rk_iommu *iommu; local 1006 struct rk_iommu *iommu; local 1121 struct rk_iommu *iommu; local 1183 struct rk_iommu *iommu; local 1302 struct rk_iommu *iommu = platform_get_drvdata(pdev); local 1316 struct rk_iommu *iommu = dev_get_drvdata(dev); local 1327 struct rk_iommu *iommu = dev_get_drvdata(dev); local [all...] |
H A D | msm_iommu.c | 18 #include <linux/iommu.h> 54 static int __enable_clocks(struct msm_iommu_dev *iommu) argument 58 ret = clk_enable(iommu->pclk); 62 if (iommu->clk) { 63 ret = clk_enable(iommu->clk); 65 clk_disable(iommu->pclk); 71 static void __disable_clocks(struct msm_iommu_dev *iommu) argument 73 if (iommu->clk) 74 clk_disable(iommu->clk); 75 clk_disable(iommu 120 struct msm_iommu_dev *iommu = NULL; local 142 struct msm_iommu_dev *iommu = NULL; local 206 config_mids(struct msm_iommu_dev *iommu, struct msm_iommu_ctx_dev *master) argument 363 struct msm_iommu_dev *iommu, *ret = NULL; local 381 struct msm_iommu_dev *iommu; local 398 struct msm_iommu_dev *iommu; local 449 struct msm_iommu_dev *iommu; local 529 struct msm_iommu_dev *iommu; local 599 insert_iommu_master(struct device *dev, struct msm_iommu_dev **iommu, const struct of_phandle_args *spec) argument 631 struct msm_iommu_dev *iommu = NULL, *iter; local 657 struct msm_iommu_dev *iommu = dev_id; local 718 struct msm_iommu_dev *iommu; local 829 struct msm_iommu_dev *iommu = platform_get_drvdata(pdev); local [all...] |
/linux-master/drivers/iommu/intel/ |
H A D | perfmon.h | 39 int alloc_iommu_pmu(struct intel_iommu *iommu); 40 void free_iommu_pmu(struct intel_iommu *iommu); 41 void iommu_pmu_register(struct intel_iommu *iommu); 42 void iommu_pmu_unregister(struct intel_iommu *iommu); 45 alloc_iommu_pmu(struct intel_iommu *iommu) argument 51 free_iommu_pmu(struct intel_iommu *iommu) argument 56 iommu_pmu_register(struct intel_iommu *iommu) argument 61 iommu_pmu_unregister(struct intel_iommu *iommu) argument
|
H A D | irq_remapping.c | 23 #include "iommu.h" 33 struct intel_iommu *iommu; member in struct:ioapic_scope 40 struct intel_iommu *iommu; member in struct:hpet_scope 47 struct intel_iommu *iommu; member in struct:irq_2_iommu 74 * ->iommu->register_lock 83 static void iommu_disable_irq_remapping(struct intel_iommu *iommu); 87 static bool ir_pre_enabled(struct intel_iommu *iommu) argument 89 return (iommu->flags & VTD_FLAG_IRQ_REMAP_PRE_ENABLED); 92 static void clear_ir_pre_enabled(struct intel_iommu *iommu) argument 94 iommu 97 init_ir_status(struct intel_iommu *iommu) argument 106 alloc_irte(struct intel_iommu *iommu, struct irq_2_iommu *irq_iommu, u16 count) argument 146 qi_flush_iec(struct intel_iommu *iommu, int index, int mask) argument 162 struct intel_iommu *iommu; local 233 struct intel_iommu *iommu; local 421 iommu_load_old_irte(struct intel_iommu *iommu) argument 463 iommu_set_irq_remapping(struct intel_iommu *iommu, int mode) argument 491 iommu_enable_irq_remapping(struct intel_iommu *iommu) argument 525 intel_setup_irq_remapping(struct intel_iommu *iommu) argument 634 intel_teardown_irq_remapping(struct intel_iommu *iommu) argument 657 iommu_disable_irq_remapping(struct intel_iommu *iommu) argument 700 struct intel_iommu *iommu; local 716 struct intel_iommu *iommu; local 790 struct intel_iommu *iommu; local 816 struct intel_iommu *iommu; local 844 ir_parse_one_hpet_scope(struct acpi_dmar_device_scope *scope, struct intel_iommu *iommu, struct acpi_dmar_hardware_unit *drhd) argument 889 ir_parse_one_ioapic_scope(struct acpi_dmar_device_scope *scope, struct intel_iommu *iommu, struct acpi_dmar_hardware_unit *drhd) argument 934 ir_parse_ioapic_hpet_scope(struct acpi_dmar_header *header, struct intel_iommu *iommu) argument 958 ir_remove_ioapic_hpet_scope(struct intel_iommu *iommu) argument 978 struct intel_iommu *iommu; local 1029 struct intel_iommu *iommu = NULL; local 1052 struct intel_iommu *iommu = NULL; local 1313 struct intel_iommu *iommu = domain->host_data; local 1405 struct intel_iommu *iommu = NULL; local 1441 dmar_ir_add(struct dmar_drhd_unit *dmaru, struct intel_iommu *iommu) argument 1481 struct intel_iommu *iommu = dmaru->iommu; local [all...] |
H A D | cap_audit.c | 3 * cap_audit.c - audit iommu capabilities for boot time and hot plug 13 #include "iommu.h" 74 static int cap_audit_hotplug(struct intel_iommu *iommu, enum cap_audit_type type) argument 81 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, cap, pi_support, CAP_PI_MASK); 82 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, ecap, eim_support, ECAP_EIM_MASK); 86 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, cap, fl5lp_support, CAP_FL5LP_MASK); 87 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, cap, fl1gp_support, CAP_FL1GP_MASK); 88 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, cap, read_drain, CAP_RD_MASK); 89 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, cap, write_drain, CAP_WD_MASK); 90 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, ca 141 cap_audit_static(struct intel_iommu *iommu, enum cap_audit_type type) argument 178 intel_cap_audit(enum cap_audit_type type, struct intel_iommu *iommu) argument [all...] |
H A D | perf.h | 39 int dmar_latency_enable(struct intel_iommu *iommu, enum latency_type type); 40 void dmar_latency_disable(struct intel_iommu *iommu, enum latency_type type); 41 bool dmar_latency_enabled(struct intel_iommu *iommu, enum latency_type type); 42 void dmar_latency_update(struct intel_iommu *iommu, enum latency_type type, 44 int dmar_latency_snapshot(struct intel_iommu *iommu, char *str, size_t size); 47 dmar_latency_enable(struct intel_iommu *iommu, enum latency_type type) argument 53 dmar_latency_disable(struct intel_iommu *iommu, enum latency_type type) argument 58 dmar_latency_enabled(struct intel_iommu *iommu, enum latency_type type) argument 64 dmar_latency_update(struct intel_iommu *iommu, enum latency_type type, u64 latency) argument 69 dmar_latency_snapshot(struct intel_iommu *iommu, cha argument [all...] |
H A D | iommu.c | 27 #include "iommu.h" 28 #include "../dma-iommu.h" 130 * released by the iommu subsystem after being returned. The caller 134 struct device *device_rbtree_find(struct intel_iommu *iommu, u16 rid) argument 140 spin_lock_irqsave(&iommu->device_rbtree_lock, flags); 141 node = rb_find(&rid, &iommu->device_rbtree, device_rid_cmp_key); 144 spin_unlock_irqrestore(&iommu->device_rbtree_lock, flags); 149 static int device_rbtree_insert(struct intel_iommu *iommu, argument 155 spin_lock_irqsave(&iommu->device_rbtree_lock, flags); 156 curr = rb_find_add(&info->node, &iommu 166 struct intel_iommu *iommu = info->iommu; local 204 struct intel_iommu *iommu; /* the corresponding iommu */ member in struct:dmar_satc_unit 235 translation_pre_enabled(struct intel_iommu *iommu) argument 240 clear_translation_pre_enabled(struct intel_iommu *iommu) argument 245 init_translation_status(struct intel_iommu *iommu) argument 334 __iommu_calculate_sagaw(struct intel_iommu *iommu) argument 352 __iommu_calculate_agaw(struct intel_iommu *iommu, int max_gaw) argument 369 iommu_calculate_max_sagaw(struct intel_iommu *iommu) argument 379 iommu_calculate_agaw(struct intel_iommu *iommu) argument 384 iommu_paging_structure_coherency(struct intel_iommu *iommu) argument 394 struct intel_iommu *iommu; local 424 struct intel_iommu *iommu; local 519 iommu_context_addr(struct intel_iommu *iommu, u8 bus, u8 devfn, int alloc) argument 617 iommu_is_dummy(struct intel_iommu *iommu, struct device *dev) argument 638 struct intel_iommu *iommu; local 711 free_context_table(struct intel_iommu *iommu) argument 737 pgtable_walk(struct intel_iommu *iommu, unsigned long pfn, u8 bus, u8 devfn, struct dma_pte *parent, int level) argument 761 dmar_fault_dump_ptes(struct intel_iommu *iommu, u16 source_id, unsigned long long addr, u32 pasid) argument 1117 iommu_alloc_root_entry(struct intel_iommu *iommu) argument 1134 iommu_set_root_entry(struct intel_iommu *iommu) argument 1168 iommu_flush_write_buffer(struct intel_iommu *iommu) argument 1187 __iommu_flush_context(struct intel_iommu *iommu, u16 did, u16 source_id, u8 function_mask, u64 type) argument 1223 __iommu_flush_iotlb(struct intel_iommu *iommu, u16 did, u64 addr, unsigned int size_order, u64 type) argument 1274 domain_lookup_dev_info(struct dmar_domain *domain, struct intel_iommu *iommu, u8 bus, u8 devfn) argument 1426 domain_flush_pasid_iotlb(struct intel_iommu *iommu, struct dmar_domain *domain, u64 addr, unsigned long npages, bool ih) argument 1443 __iommu_flush_iotlb_psi(struct intel_iommu *iommu, u16 did, unsigned long pfn, unsigned int pages, int ih) argument 1483 iommu_flush_iotlb_psi(struct intel_iommu *iommu, struct dmar_domain *domain, unsigned long pfn, unsigned int pages, int ih, int map) argument 1513 __mapping_notify_one(struct intel_iommu *iommu, struct dmar_domain *domain, unsigned long pfn, unsigned int pages) argument 1573 struct intel_iommu *iommu = info->iommu; local 1590 iommu_disable_protect_mem_regions(struct intel_iommu *iommu) argument 1610 iommu_enable_translation(struct intel_iommu *iommu) argument 1626 iommu_disable_translation(struct intel_iommu *iommu) argument 1646 iommu_init_domains(struct intel_iommu *iommu) argument 1681 disable_dmar_iommu(struct intel_iommu *iommu) argument 1698 free_dmar_iommu(struct intel_iommu *iommu) argument 1759 domain_attach_iommu(struct dmar_domain *domain, struct intel_iommu *iommu) argument 1808 domain_detach_iommu(struct dmar_domain *domain, struct intel_iommu *iommu) argument 1853 domain_context_mapping_one(struct dmar_domain *domain, struct intel_iommu *iommu, u8 bus, u8 devfn) argument 1970 struct intel_iommu *iommu = info->iommu; local 1981 struct intel_iommu *iommu = info->iommu; local 2174 struct intel_iommu *iommu = info->iommu; local 2205 domain_setup_first_level(struct intel_iommu *iommu, struct dmar_domain *domain, struct device *dev, u32 pasid) argument 2323 struct intel_iommu *iommu = info->iommu; local 2413 intel_iommu_init_qi(struct intel_iommu *iommu) argument 2448 copy_context_table(struct intel_iommu *iommu, struct root_entry *old_re, struct context_entry **tbl, int bus, bool ext) argument 2532 copy_translation_tables(struct intel_iommu *iommu) argument 2620 struct intel_iommu *iommu; local 2810 struct intel_iommu *iommu = NULL; local 2844 struct intel_iommu *iommu; local 2857 struct intel_iommu *iommu = NULL; local 2884 struct intel_iommu *iommu = NULL; local 3134 struct intel_iommu *iommu = dmaru->iommu; local 3206 struct intel_iommu *iommu = dmaru->iommu; local 3270 dmar_ats_supported(struct pci_dev *dev, struct intel_iommu *iommu) argument 3418 struct intel_iommu *iommu; local 3444 struct intel_iommu *iommu = NULL; local 3454 struct intel_iommu *iommu = NULL; local 3481 struct intel_iommu *iommu = dev_to_intel_iommu(dev); local 3491 struct intel_iommu *iommu = dev_to_intel_iommu(dev); local 3499 struct intel_iommu *iommu = dev_to_intel_iommu(dev); local 3507 struct intel_iommu *iommu = dev_to_intel_iommu(dev); local 3515 struct intel_iommu *iommu = dev_to_intel_iommu(dev); local 3523 struct intel_iommu *iommu = dev_to_intel_iommu(dev); local 3637 struct intel_iommu *iommu; local 3799 struct intel_iommu *iommu = info->iommu; local 3902 struct intel_iommu *iommu = info->iommu; local 3963 struct intel_iommu *iommu = info->iommu; local 4245 struct intel_iommu *iommu; local 4338 struct intel_iommu *iommu = info->iommu; local 4430 struct intel_iommu *iommu; local 4466 struct intel_iommu *iommu; local 4505 struct intel_iommu *iommu = info->iommu; local 4597 struct intel_iommu *iommu = info->iommu; local 4641 struct intel_iommu *iommu = info->iommu; local 4698 struct intel_iommu *iommu = info->iommu; local 5120 ecmd_submit_sync(struct intel_iommu *iommu, u8 ecmd, u64 oa, u64 ob) argument [all...] |
H A D | trace.h | 17 #include "iommu.h" 22 TP_PROTO(struct intel_iommu *iommu, u64 qw0, u64 qw1, u64 qw2, u64 qw3), 24 TP_ARGS(iommu, qw0, qw1, qw2, qw3), 31 __string(iommu, iommu->name) 35 __assign_str(iommu, iommu->name); 53 __get_str(iommu), 59 TP_PROTO(struct intel_iommu *iommu, struct device *dev, 63 TP_ARGS(iommu, de [all...] |
H A D | debugfs.c | 17 #include "iommu.h" 116 struct intel_iommu *iommu; local 122 for_each_active_iommu(iommu, drhd) { 130 iommu->name, drhd->reg_base_addr); 136 raw_spin_lock_irqsave(&iommu->register_lock, flag); 138 value = dmar_readl(iommu->reg + iommu_regs_32[i].offset); 144 value = dmar_readq(iommu->reg + iommu_regs_64[i].offset); 149 raw_spin_unlock_irqrestore(&iommu->register_lock, flag); 217 static void ctx_tbl_walk(struct seq_file *m, struct intel_iommu *iommu, u16 bus) argument 239 context = iommu_context_addr(iommu, bu 263 root_tbl_walk(struct seq_file *m, struct intel_iommu *iommu) argument 285 struct intel_iommu *iommu; local 353 struct intel_iommu *iommu; local 482 invalidation_queue_entry_show(struct seq_file *m, struct intel_iommu *iommu) argument 512 struct intel_iommu *iommu; local 543 ir_tbl_remap_entry_show(struct seq_file *m, struct intel_iommu *iommu) argument 567 ir_tbl_posted_entry_show(struct seq_file *m, struct intel_iommu *iommu) argument 600 struct intel_iommu *iommu; local 648 latency_show_one(struct seq_file *m, struct intel_iommu *iommu, struct dmar_drhd_unit *drhd) argument 667 struct intel_iommu *iommu; local 687 struct intel_iommu *iommu; local [all...] |
H A D | pasid.c | 15 #include <linux/iommu.h> 21 #include "iommu.h" 62 pages = alloc_pages_node(info->iommu->node, 74 if (!ecap_coherent(info->iommu->ecap)) 149 entries = alloc_pgtable_page(info->iommu->node, GFP_ATOMIC); 164 if (!ecap_coherent(info->iommu->ecap)) { 192 pasid_cache_invalidation_with_pasid(struct intel_iommu *iommu, argument 203 qi_submit_sync(iommu, &desc, 1, 0); 207 devtlb_invalidation_with_pasid(struct intel_iommu *iommu, argument 231 qi_flush_dev_iotlb(iommu, si 236 intel_pasid_tear_down_entry(struct intel_iommu *iommu, struct device *dev, u32 pasid, bool fault_ignore) argument 273 pasid_flush_caches(struct intel_iommu *iommu, struct pasid_entry *pte, u32 pasid, u16 did) argument 292 intel_pasid_setup_first_level(struct intel_iommu *iommu, struct device *dev, pgd_t *pgd, u32 pasid, u16 did, int flags) argument 352 iommu_skip_agaw(struct dmar_domain *domain, struct intel_iommu *iommu, struct dma_pte **pgd) argument 370 intel_pasid_setup_second_level(struct intel_iommu *iommu, struct dmar_domain *domain, struct device *dev, u32 pasid) argument 433 intel_pasid_setup_dirty_tracking(struct intel_iommu *iommu, struct device *dev, u32 pasid, bool enabled) argument 504 intel_pasid_setup_pass_through(struct intel_iommu *iommu, struct device *dev, u32 pasid) argument 539 intel_pasid_setup_page_snoop_control(struct intel_iommu *iommu, struct device *dev, u32 pasid) argument 589 intel_pasid_setup_nested(struct intel_iommu *iommu, struct device *dev, u32 pasid, struct dmar_domain *domain) argument 682 struct intel_iommu *iommu = info->iommu; local 760 struct intel_iommu *iommu = info->iommu; local 786 struct intel_iommu *iommu = info->iommu; local [all...] |
H A D | svm.c | 22 #include "iommu.h" 63 int intel_svm_enable_prq(struct intel_iommu *iommu) argument 69 pages = alloc_pages_node(iommu->node, GFP_KERNEL | __GFP_ZERO, PRQ_ORDER); 72 iommu->name); 75 iommu->prq = page_address(pages); 77 irq = dmar_alloc_hwirq(IOMMU_IRQ_ID_OFFSET_PRQ + iommu->seq_id, iommu->node, iommu); 80 iommu->name); 84 iommu 126 intel_svm_finish_prq(struct intel_iommu *iommu) argument 149 intel_svm_check(struct intel_iommu *iommu) argument 321 struct intel_iommu *iommu = info->iommu; local 471 struct intel_iommu *iommu; local 557 intel_svm_prq_report(struct intel_iommu *iommu, struct device *dev, struct page_req_dsc *desc) argument 597 handle_bad_prq_event(struct intel_iommu *iommu, struct page_req_dsc *req, int result) argument 638 struct intel_iommu *iommu = d; local 736 struct intel_iommu *iommu = info->iommu; local [all...] |
H A D | dmar.c | 28 #include <linux/iommu.h> 33 #include "iommu.h" 67 static void free_iommu(struct intel_iommu *iommu); 461 if (dmaru->iommu) 462 free_iommu(dmaru->iommu); 501 drhd->iommu->node = node; 939 x86_init.iommu.iommu_init = intel_iommu_init; 952 static void unmap_iommu(struct intel_iommu *iommu) argument 954 iounmap(iommu->reg); 955 release_mem_region(iommu 966 map_iommu(struct intel_iommu *iommu, struct dmar_drhd_unit *drhd) argument 1040 struct intel_iommu *iommu; local 1168 free_iommu(struct intel_iommu *iommu) argument 1241 qi_dump_fault(struct intel_iommu *iommu, u32 fault) argument 1272 qi_check_fault(struct intel_iommu *iommu, int index, int wait_index) argument 1370 qi_submit_sync(struct intel_iommu *iommu, struct qi_desc *desc, unsigned int count, unsigned long options) argument 1493 qi_global_iec(struct intel_iommu *iommu) argument 1506 qi_flush_context(struct intel_iommu *iommu, u16 did, u16 sid, u8 fm, u64 type) argument 1520 qi_flush_iotlb(struct intel_iommu *iommu, u16 did, u64 addr, unsigned int size_order, u64 type) argument 1544 qi_flush_dev_iotlb(struct intel_iommu *iommu, u16 sid, u16 pfsid, u16 qdep, u64 addr, unsigned mask) argument 1576 qi_flush_piotlb(struct intel_iommu *iommu, u16 did, u32 pasid, u64 addr, unsigned long npages, bool ih) argument 1617 qi_flush_dev_iotlb_pasid(struct intel_iommu *iommu, u16 sid, u16 pfsid, u32 pasid, u16 qdep, u64 addr, unsigned int size_order) argument 1669 qi_flush_pasid_cache(struct intel_iommu *iommu, u16 did, u64 granu, u32 pasid) argument 1682 dmar_disable_qi(struct intel_iommu *iommu) argument 1717 __dmar_enable_qi(struct intel_iommu *iommu) argument 1755 dmar_enable_qi(struct intel_iommu *iommu) argument 1919 dmar_msi_reg(struct intel_iommu *iommu, int irq) argument 1933 struct intel_iommu *iommu = irq_data_get_irq_handler_data(data); local 1947 struct intel_iommu *iommu = irq_data_get_irq_handler_data(data); local 1961 struct intel_iommu *iommu = irq_get_handler_data(irq); local 1974 struct intel_iommu *iommu = irq_get_handler_data(irq); local 1985 dmar_fault_do_one(struct intel_iommu *iommu, int type, u8 fault_reason, u32 pasid, u16 source_id, unsigned long long addr) argument 2024 struct intel_iommu *iommu = dev_id; local 2101 dmar_set_interrupt(struct intel_iommu *iommu) argument 2128 struct intel_iommu *iommu; local 2157 dmar_reenable_qi(struct intel_iommu *iommu) argument [all...] |
H A D | perf.c | 13 #include "iommu.h" 18 bool dmar_latency_enabled(struct intel_iommu *iommu, enum latency_type type) argument 20 struct latency_statistic *lstat = iommu->perf_statistic; 25 int dmar_latency_enable(struct intel_iommu *iommu, enum latency_type type) argument 31 if (dmar_latency_enabled(iommu, type)) 35 if (!iommu->perf_statistic) { 36 iommu->perf_statistic = kcalloc(DMAR_LATENCY_NUM, sizeof(*lstat), 38 if (!iommu->perf_statistic) { 44 lstat = iommu->perf_statistic; 57 void dmar_latency_disable(struct intel_iommu *iommu, enu argument 70 dmar_latency_update(struct intel_iommu *iommu, enum latency_type type, u64 latency) argument 116 dmar_latency_snapshot(struct intel_iommu *iommu, char *str, size_t size) argument [all...] |
/linux-master/drivers/iommu/amd/ |
H A D | debugfs.c | 20 void amd_iommu_debugfs_setup(struct amd_iommu *iommu) argument 30 snprintf(name, MAX_NAME_LEN, "iommu%02d", iommu->index); 31 iommu->debugfs = debugfs_create_dir(name, amd_iommu_debugfs);
|
H A D | Makefile | 2 obj-$(CONFIG_AMD_IOMMU) += iommu.o init.o quirks.o io_pgtable.o io_pgtable_v2.o
|
H A D | init.c | 20 #include <linux/amd-iommu.h> 26 #include <asm/iommu.h> 235 bool translation_pre_enabled(struct amd_iommu *iommu) argument 237 return (iommu->flags & AMD_IOMMU_FLAG_TRANS_PRE_ENABLED); 240 static void clear_translation_pre_enabled(struct amd_iommu *iommu) argument 242 iommu->flags &= ~AMD_IOMMU_FLAG_TRANS_PRE_ENABLED; 245 static void init_translation_status(struct amd_iommu *iommu) argument 249 ctrl = readq(iommu->mmio_base + MMIO_CONTROL_OFFSET); 251 iommu->flags |= AMD_IOMMU_FLAG_TRANS_PRE_ENABLED; 273 struct amd_iommu *iommu; local 308 early_iommu_features_init(struct amd_iommu *iommu, struct ivhd_header *h) argument 321 iommu_read_l1(struct amd_iommu *iommu, u16 l1, u8 address) argument 330 iommu_write_l1(struct amd_iommu *iommu, u16 l1, u8 address, u32 val) argument 337 iommu_read_l2(struct amd_iommu *iommu, u8 address) argument 346 iommu_write_l2(struct amd_iommu *iommu, u8 address, u32 val) argument 365 iommu_set_exclusion_range(struct amd_iommu *iommu) argument 383 iommu_set_cwwb_range(struct amd_iommu *iommu) argument 407 iommu_set_device_table(struct amd_iommu *iommu) argument 422 iommu_feature_enable(struct amd_iommu *iommu, u8 bit) argument 431 iommu_feature_disable(struct amd_iommu *iommu, u8 bit) argument 440 iommu_set_inv_tlb_timeout(struct amd_iommu *iommu, int timeout) argument 451 iommu_enable(struct amd_iommu *iommu) argument 456 iommu_disable(struct amd_iommu *iommu) argument 499 iommu_unmap_mmio_space(struct amd_iommu *iommu) argument 737 alloc_command_buffer(struct amd_iommu *iommu) argument 749 amd_iommu_restart_log(struct amd_iommu *iommu, const char *evt_type, u8 cntrl_intr, u8 cntrl_log, u32 status_run_mask, u32 status_overflow_mask) argument 774 amd_iommu_restart_event_logging(struct amd_iommu *iommu) argument 785 amd_iommu_restart_ga_log(struct amd_iommu *iommu) argument 796 amd_iommu_restart_ppr_log(struct amd_iommu *iommu) argument 807 amd_iommu_reset_cmd_buffer(struct amd_iommu *iommu) argument 823 iommu_enable_command_buffer(struct amd_iommu *iommu) argument 841 iommu_disable_command_buffer(struct amd_iommu *iommu) argument 846 free_command_buffer(struct amd_iommu *iommu) argument 851 iommu_alloc_4k_pages(struct amd_iommu *iommu, gfp_t gfp, size_t size) argument 868 alloc_event_buffer(struct amd_iommu *iommu) argument 876 iommu_enable_event_buffer(struct amd_iommu *iommu) argument 897 iommu_disable_event_buffer(struct amd_iommu *iommu) argument 902 free_event_buffer(struct amd_iommu *iommu) argument 908 alloc_ppr_log(struct amd_iommu *iommu) argument 916 iommu_enable_ppr_log(struct amd_iommu *iommu) argument 938 free_ppr_log(struct amd_iommu *iommu) argument 943 free_ga_log(struct amd_iommu *iommu) argument 952 iommu_ga_log_enable(struct amd_iommu *iommu) argument 987 iommu_init_ga_log(struct amd_iommu *iommu) argument 1009 alloc_cwwb_sem(struct amd_iommu *iommu) argument 1016 free_cwwb_sem(struct amd_iommu *iommu) argument 1022 iommu_enable_xt(struct amd_iommu *iommu) argument 1035 iommu_enable_gt(struct amd_iommu *iommu) argument 1053 set_dev_entry_bit(struct amd_iommu *iommu, u16 devid, u8 bit) argument 1069 get_dev_entry_bit(struct amd_iommu *iommu, u16 devid, u8 bit) argument 1076 __copy_device_table(struct amd_iommu *iommu) argument 1168 struct amd_iommu *iommu; local 1193 amd_iommu_apply_erratum_63(struct amd_iommu *iommu, u16 devid) argument 1208 set_dev_entry_from_acpi(struct amd_iommu *iommu, u16 devid, u32 flags, u32 ext_flags) argument 1342 init_iommu_from_acpi(struct amd_iommu *iommu, struct ivhd_header *h) argument 1681 free_iommu_one(struct amd_iommu *iommu) argument 1693 struct amd_iommu *iommu, *next; local 1708 amd_iommu_erratum_746_workaround(struct amd_iommu *iommu) argument 1739 amd_iommu_ats_write_check_workaround(struct amd_iommu *iommu) argument 1765 init_iommu_one(struct amd_iommu *iommu, struct ivhd_header *h, struct acpi_table_header *ivrs_base) argument 1852 init_iommu_one_late(struct amd_iommu *iommu) argument 1926 struct amd_iommu *iommu; local 1971 init_iommu_perf_ctr(struct amd_iommu *iommu) argument 1994 struct amd_iommu *iommu = dev_to_amd_iommu(dev); local 2028 late_iommu_features_init(struct amd_iommu *iommu) argument 2058 iommu_init_pci(struct amd_iommu *iommu) argument 2201 struct amd_iommu *iommu; local 2247 iommu_setup_msi(struct amd_iommu *iommu) argument 2331 struct amd_iommu *iommu = irqd->chip_data; local 2346 struct amd_iommu *iommu = irqd->chip_data; local 2411 __iommu_setup_intcapxt(struct amd_iommu *iommu, const char *devname, int hwirq, irq_handler_t thread_fn) argument 2445 iommu_setup_intcapxt(struct amd_iommu *iommu) argument 2476 iommu_init_irq(struct amd_iommu *iommu) argument 2655 iommu_init_flags(struct amd_iommu *iommu) argument 2682 iommu_apply_resume_quirks(struct amd_iommu *iommu) argument 2725 iommu_enable_ga(struct amd_iommu *iommu) argument 2741 iommu_disable_irtcachedis(struct amd_iommu *iommu) argument 2746 iommu_enable_irtcachedis(struct amd_iommu *iommu) argument 2768 early_enable_iommu(struct amd_iommu *iommu) argument 2794 struct amd_iommu *iommu; local 2845 struct amd_iommu *iommu; local 2855 struct amd_iommu *iommu; local 2920 struct amd_iommu *iommu; local 2938 struct amd_iommu *iommu; local 3170 struct amd_iommu *iommu; local 3327 struct amd_iommu *iommu; local 3409 struct amd_iommu *iommu; local 3711 struct amd_iommu *iommu; local 3728 struct amd_iommu *iommu = get_amd_iommu(idx); local 3743 struct amd_iommu *iommu = get_amd_iommu(idx); local 3751 iommu_pc_get_set_reg(struct amd_iommu *iommu, u8 bank, u8 cntr, u8 fxn, u64 *value, bool is_write) argument 3789 amd_iommu_pc_get_reg(struct amd_iommu *iommu, u8 bank, u8 cntr, u8 fxn, u64 *value) argument 3797 amd_iommu_pc_set_reg(struct amd_iommu *iommu, u8 bank, u8 cntr, u8 fxn, u64 *value) argument 3863 struct amd_iommu *iommu; local [all...] |
/linux-master/drivers/vfio/ |
H A D | vfio_iommu_type1.c | 28 #include <linux/iommu.h> 157 vfio_iommu_find_iommu_group(struct vfio_iommu *iommu, 165 static struct vfio_dma *vfio_find_dma(struct vfio_iommu *iommu, argument 168 struct rb_node *node = iommu->dma_list.rb_node; 184 static struct rb_node *vfio_find_dma_first_node(struct vfio_iommu *iommu, argument 188 struct rb_node *node = iommu->dma_list.rb_node; 209 static void vfio_link_dma(struct vfio_iommu *iommu, struct vfio_dma *new) argument 211 struct rb_node **link = &iommu->dma_list.rb_node, *parent = NULL; 225 rb_insert_color(&new->node, &iommu->dma_list); 228 static void vfio_unlink_dma(struct vfio_iommu *iommu, struc argument 272 vfio_iommu_populate_bitmap_full(struct vfio_iommu *iommu) argument 284 vfio_dma_bitmap_alloc_all(struct vfio_iommu *iommu, size_t pgsize) argument 309 vfio_dma_bitmap_free_all(struct vfio_iommu *iommu) argument 790 struct vfio_iommu *iommu = iommu_data; local 907 struct vfio_iommu *iommu = iommu_data; local 1025 vfio_unmap_unpin(struct vfio_iommu *iommu, struct vfio_dma *dma, bool do_accounting) argument 1109 vfio_remove_dma(struct vfio_iommu *iommu, struct vfio_dma *dma) argument 1123 vfio_update_pgsize_bitmap(struct vfio_iommu *iommu) argument 1146 update_user_bitmap(u64 __user *bitmap, struct vfio_iommu *iommu, struct vfio_dma *dma, dma_addr_t base_iova, size_t pgsize) argument 1183 vfio_iova_dirty_bitmap(u64 __user *bitmap, struct vfio_iommu *iommu, dma_addr_t iova, size_t size, size_t pgsize) argument 1243 vfio_notify_dma_unmap(struct vfio_iommu *iommu, struct vfio_dma *dma) argument 1267 vfio_dma_do_unmap(struct vfio_iommu *iommu, struct vfio_iommu_type1_dma_unmap *unmap, struct vfio_bitmap *bitmap) argument 1418 vfio_iommu_map(struct vfio_iommu *iommu, dma_addr_t iova, unsigned long pfn, long npage, int prot) argument 1445 vfio_pin_map_dma(struct vfio_iommu *iommu, struct vfio_dma *dma, size_t map_size) argument 1495 vfio_iommu_iova_dma_valid(struct vfio_iommu *iommu, dma_addr_t start, dma_addr_t end) argument 1545 vfio_dma_do_map(struct vfio_iommu *iommu, struct vfio_iommu_type1_dma_map *map) argument 1665 vfio_iommu_replay(struct vfio_iommu *iommu, struct vfio_domain *domain) argument 1867 vfio_iommu_find_iommu_group(struct vfio_iommu *iommu, struct iommu_group *iommu_group) argument 1941 vfio_iommu_aper_conflict(struct vfio_iommu *iommu, dma_addr_t start, dma_addr_t end) argument 2015 vfio_iommu_resv_conflict(struct vfio_iommu *iommu, struct list_head *resv_regions) argument 2104 vfio_iommu_iova_get_copy(struct vfio_iommu *iommu, struct list_head *iova_copy) argument 2124 vfio_iommu_iova_insert_copy(struct vfio_iommu *iommu, struct list_head *iova_copy) argument 2145 struct vfio_iommu *iommu = iommu_data; local 2341 vfio_iommu_unmap_unpin_all(struct vfio_iommu *iommu) argument 2349 vfio_iommu_unmap_unpin_reaccount(struct vfio_iommu *iommu) argument 2377 vfio_iommu_aper_expand(struct vfio_iommu *iommu, struct list_head *iova_copy) argument 2410 vfio_iommu_resv_refresh(struct vfio_iommu *iommu, struct list_head *iova_copy) argument 2454 struct vfio_iommu *iommu = iommu_data; local 2538 struct vfio_iommu *iommu; local 2587 struct vfio_iommu *iommu = iommu_data; local 2611 vfio_domains_have_enforce_cache_coherency(struct vfio_iommu *iommu) argument 2628 vfio_iommu_has_emulated(struct vfio_iommu *iommu) argument 2638 vfio_iommu_type1_check_extension(struct vfio_iommu *iommu, unsigned long arg) argument 2683 vfio_iommu_iova_build_caps(struct vfio_iommu *iommu, struct vfio_info_cap *caps) argument 2722 vfio_iommu_migration_build_caps(struct vfio_iommu *iommu, struct vfio_info_cap *caps) argument 2738 vfio_iommu_dma_avail_build_caps(struct vfio_iommu *iommu, struct vfio_info_cap *caps) argument 2752 vfio_iommu_type1_get_info(struct vfio_iommu *iommu, unsigned long arg) argument 2811 vfio_iommu_type1_map_dma(struct vfio_iommu *iommu, unsigned long arg) argument 2830 vfio_iommu_type1_unmap_dma(struct vfio_iommu *iommu, unsigned long arg) argument 2883 vfio_iommu_type1_dirty_pages(struct vfio_iommu *iommu, unsigned long arg) argument 2990 struct vfio_iommu *iommu = iommu_data; local 3011 struct vfio_iommu *iommu = iommu_data; local 3032 struct vfio_iommu *iommu = iommu_data; local 3044 vfio_iommu_type1_dma_rw_chunk(struct vfio_iommu *iommu, dma_addr_t user_iova, void *data, size_t count, bool write, size_t *copied) argument 3107 struct vfio_iommu *iommu = iommu_data; local 3140 struct vfio_iommu *iommu = iommu_data; local [all...] |
/linux-master/arch/sparc/mm/ |
H A D | iommu.c | 3 * iommu.c: IOMMU specific routines for memory management. 26 #include <asm/iommu.h> 60 struct iommu_struct *iommu; local 67 iommu = kmalloc(sizeof(struct iommu_struct), GFP_KERNEL); 68 if (!iommu) { 69 prom_printf("Unable to allocate iommu structure\n"); 73 iommu->regs = of_ioremap(&op->resource[0], 0, PAGE_SIZE * 3, 75 if (!iommu->regs) { 80 control = sbus_readl(&iommu->regs->control); 85 sbus_writel(control, &iommu 187 struct iommu_struct *iommu = dev->archdata.iommu; local 283 struct iommu_struct *iommu = dev->archdata.iommu; local 316 struct iommu_struct *iommu = dev->archdata.iommu; local 398 struct iommu_struct *iommu = dev->archdata.iommu; local [all...] |
/linux-master/arch/powerpc/include/asm/ |
H A D | tce.h | 12 #include <asm/iommu.h>
|