Searched refs:iommu (Results 1 - 25 of 298) sorted by relevance

1234567891011>>

/linux-master/arch/sparc/kernel/
H A Diommu-common.c4 * 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 Diommu.c2 /* 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 Diommu-sysfs.c10 #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 Diommu-priv.h7 #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 DMakefile3 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 Dsun50i-iommu.c14 #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 Drockchip-iommu.c17 #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 Dmsm_iommu.c18 #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 Dperfmon.h39 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 Dirq_remapping.c23 #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 Dcap_audit.c3 * 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 Dperf.h39 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 Diommu.c27 #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 Dtrace.h17 #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 Ddebugfs.c17 #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 Dpasid.c15 #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 Dsvm.c22 #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 Ddmar.c28 #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 Dperf.c13 #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 Ddebugfs.c20 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 DMakefile2 obj-$(CONFIG_AMD_IOMMU) += iommu.o init.o quirks.o io_pgtable.o io_pgtable_v2.o
H A Dinit.c20 #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 Dvfio_iommu_type1.c28 #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 Diommu.c3 * 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 Dtce.h12 #include <asm/iommu.h>

Completed in 219 milliseconds

1234567891011>>