/linux-master/drivers/iommu/amd/ |
H A D | ppr.c | 9 #include <linux/amd-iommu.h> 13 #include <asm/iommu.h> 18 #include "../iommu-pages.h" 20 int __init amd_iommu_alloc_ppr_log(struct amd_iommu *iommu) argument 22 iommu->ppr_log = iommu_alloc_4k_pages(iommu, GFP_KERNEL | __GFP_ZERO, 24 return iommu->ppr_log ? 0 : -ENOMEM; 27 void amd_iommu_enable_ppr_log(struct amd_iommu *iommu) argument 31 if (iommu->ppr_log == NULL) 34 iommu_feature_enable(iommu, CONTROL_PPR_E 49 amd_iommu_free_ppr_log(struct amd_iommu *iommu) argument 58 amd_iommu_restart_ppr_log(struct amd_iommu *iommu) argument 81 ppr_is_valid(struct amd_iommu *iommu, u64 *raw) argument 105 iommu_call_iopf_notifier(struct amd_iommu *iommu, u64 *raw) argument 162 amd_iommu_poll_ppr_log(struct amd_iommu *iommu) argument 218 amd_iommu_iopf_init(struct amd_iommu *iommu) argument 237 amd_iommu_iopf_uninit(struct amd_iommu *iommu) argument 249 amd_iommu_iopf_add_device(struct amd_iommu *iommu, struct iommu_dev_data *dev_data) argument 277 amd_iommu_iopf_remove_device(struct amd_iommu *iommu, struct iommu_dev_data *dev_data) argument [all...] |
H A D | init.c | 20 #include <linux/amd-iommu.h> 26 #include <asm/iommu.h> 39 #include "../iommu-pages.h" 236 bool translation_pre_enabled(struct amd_iommu *iommu) argument 238 return (iommu->flags & AMD_IOMMU_FLAG_TRANS_PRE_ENABLED); 241 static void clear_translation_pre_enabled(struct amd_iommu *iommu) argument 243 iommu->flags &= ~AMD_IOMMU_FLAG_TRANS_PRE_ENABLED; 246 static void init_translation_status(struct amd_iommu *iommu) argument 250 ctrl = readq(iommu->mmio_base + MMIO_CONTROL_OFFSET); 252 iommu 274 struct amd_iommu *iommu; local 309 early_iommu_features_init(struct amd_iommu *iommu, struct ivhd_header *h) argument 322 iommu_read_l1(struct amd_iommu *iommu, u16 l1, u8 address) argument 331 iommu_write_l1(struct amd_iommu *iommu, u16 l1, u8 address, u32 val) argument 338 iommu_read_l2(struct amd_iommu *iommu, u8 address) argument 347 iommu_write_l2(struct amd_iommu *iommu, u8 address, u32 val) argument 366 iommu_set_exclusion_range(struct amd_iommu *iommu) argument 384 iommu_set_cwwb_range(struct amd_iommu *iommu) argument 408 iommu_set_device_table(struct amd_iommu *iommu) argument 423 iommu_feature_enable(struct amd_iommu *iommu, u8 bit) argument 432 iommu_feature_disable(struct amd_iommu *iommu, u8 bit) argument 441 iommu_set_inv_tlb_timeout(struct amd_iommu *iommu, int timeout) argument 452 iommu_enable(struct amd_iommu *iommu) argument 457 iommu_disable(struct amd_iommu *iommu) argument 500 iommu_unmap_mmio_space(struct amd_iommu *iommu) argument 736 alloc_command_buffer(struct amd_iommu *iommu) argument 748 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 773 amd_iommu_restart_event_logging(struct amd_iommu *iommu) argument 784 amd_iommu_restart_ga_log(struct amd_iommu *iommu) argument 795 amd_iommu_reset_cmd_buffer(struct amd_iommu *iommu) argument 811 iommu_enable_command_buffer(struct amd_iommu *iommu) argument 829 iommu_disable_command_buffer(struct amd_iommu *iommu) argument 834 free_command_buffer(struct amd_iommu *iommu) argument 839 iommu_alloc_4k_pages(struct amd_iommu *iommu, gfp_t gfp, size_t size) argument 856 alloc_event_buffer(struct amd_iommu *iommu) argument 864 iommu_enable_event_buffer(struct amd_iommu *iommu) argument 885 iommu_disable_event_buffer(struct amd_iommu *iommu) argument 890 free_event_buffer(struct amd_iommu *iommu) argument 895 free_ga_log(struct amd_iommu *iommu) argument 904 iommu_ga_log_enable(struct amd_iommu *iommu) argument 939 iommu_init_ga_log(struct amd_iommu *iommu) argument 959 alloc_cwwb_sem(struct amd_iommu *iommu) argument 966 free_cwwb_sem(struct amd_iommu *iommu) argument 972 iommu_enable_xt(struct amd_iommu *iommu) argument 985 iommu_enable_gt(struct amd_iommu *iommu) argument 1003 set_dev_entry_bit(struct amd_iommu *iommu, u16 devid, u8 bit) argument 1019 get_dev_entry_bit(struct amd_iommu *iommu, u16 devid, u8 bit) argument 1026 __copy_device_table(struct amd_iommu *iommu) argument 1116 struct amd_iommu *iommu; local 1141 amd_iommu_apply_erratum_63(struct amd_iommu *iommu, u16 devid) argument 1156 set_dev_entry_from_acpi(struct amd_iommu *iommu, u16 devid, u32 flags, u32 ext_flags) argument 1290 init_iommu_from_acpi(struct amd_iommu *iommu, struct ivhd_header *h) argument 1629 free_iommu_one(struct amd_iommu *iommu) argument 1642 struct amd_iommu *iommu, *next; local 1657 amd_iommu_erratum_746_workaround(struct amd_iommu *iommu) argument 1688 amd_iommu_ats_write_check_workaround(struct amd_iommu *iommu) argument 1714 init_iommu_one(struct amd_iommu *iommu, struct ivhd_header *h, struct acpi_table_header *ivrs_base) argument 1801 init_iommu_one_late(struct amd_iommu *iommu) argument 1875 struct amd_iommu *iommu; local 1920 init_iommu_perf_ctr(struct amd_iommu *iommu) argument 1943 struct amd_iommu *iommu = dev_to_amd_iommu(dev); local 1977 late_iommu_features_init(struct amd_iommu *iommu) argument 2007 iommu_init_pci(struct amd_iommu *iommu) argument 2162 struct amd_iommu *iommu; local 2208 iommu_setup_msi(struct amd_iommu *iommu) argument 2292 struct amd_iommu *iommu = irqd->chip_data; local 2307 struct amd_iommu *iommu = irqd->chip_data; local 2372 __iommu_setup_intcapxt(struct amd_iommu *iommu, const char *devname, int hwirq, irq_handler_t thread_fn) argument 2406 iommu_setup_intcapxt(struct amd_iommu *iommu) argument 2437 iommu_init_irq(struct amd_iommu *iommu) argument 2616 iommu_init_flags(struct amd_iommu *iommu) argument 2643 iommu_apply_resume_quirks(struct amd_iommu *iommu) argument 2686 iommu_enable_ga(struct amd_iommu *iommu) argument 2702 iommu_disable_irtcachedis(struct amd_iommu *iommu) argument 2707 iommu_enable_irtcachedis(struct amd_iommu *iommu) argument 2729 early_enable_iommu(struct amd_iommu *iommu) argument 2754 struct amd_iommu *iommu; local 2804 struct amd_iommu *iommu; local 2817 struct amd_iommu *iommu; local 2882 struct amd_iommu *iommu; local 2900 struct amd_iommu *iommu; local 3131 struct amd_iommu *iommu; local 3288 struct amd_iommu *iommu; local 3370 struct amd_iommu *iommu; local 3672 struct amd_iommu *iommu; local 3689 struct amd_iommu *iommu = get_amd_iommu(idx); local 3704 struct amd_iommu *iommu = get_amd_iommu(idx); local 3712 iommu_pc_get_set_reg(struct amd_iommu *iommu, u8 bank, u8 cntr, u8 fxn, u64 *value, bool is_write) argument 3750 amd_iommu_pc_get_reg(struct amd_iommu *iommu, u8 bank, u8 cntr, u8 fxn, u64 *value) argument 3758 amd_iommu_pc_set_reg(struct amd_iommu *iommu, u8 bank, u8 cntr, u8 fxn, u64 *value) argument 3824 struct amd_iommu *iommu; local [all...] |
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 | amd_iommu.h | 10 #include <linux/iommu.h> 19 void amd_iommu_apply_erratum_63(struct amd_iommu *iommu, u16 devid); 20 void amd_iommu_restart_log(struct amd_iommu *iommu, const char *evt_type, 23 void amd_iommu_restart_event_logging(struct amd_iommu *iommu); 24 void amd_iommu_restart_ga_log(struct amd_iommu *iommu); 25 void amd_iommu_restart_ppr_log(struct amd_iommu *iommu); 26 void amd_iommu_set_rlookup_table(struct amd_iommu *iommu, u16 devid); 27 void iommu_feature_enable(struct amd_iommu *iommu, u8 bit); 28 void *__init iommu_alloc_4k_pages(struct amd_iommu *iommu, 32 void amd_iommu_debugfs_setup(struct amd_iommu *iommu); 34 amd_iommu_debugfs_setup(struct amd_iommu *iommu) argument 102 amd_iommu_create_irq_domain(struct amd_iommu *iommu) argument [all...] |
/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> 29 #include "iommu-pages.h" 101 struct iommu_device iommu; member in struct:sun50i_iommu 125 struct sun50i_iommu *iommu; member in struct:sun50i_iommu_domain 138 static u32 iommu_read(struct sun50i_iommu *iommu, u32 offset) argument 140 return readl(iommu->base + offset); 143 static void iommu_write(struct sun50i_iommu *iommu, u32 offset, u32 value) argument 145 writel(value, iommu->base + offset); 294 struct sun50i_iommu *iommu = sun50i_domain->iommu; local 301 sun50i_iommu_zap_iova(struct sun50i_iommu *iommu, unsigned long iova) argument 318 sun50i_iommu_zap_ptw_cache(struct sun50i_iommu *iommu, unsigned long iova) argument 334 sun50i_iommu_zap_range(struct sun50i_iommu *iommu, unsigned long iova, size_t size) argument 357 sun50i_iommu_flush_all_tlb(struct sun50i_iommu *iommu) argument 387 struct sun50i_iommu *iommu = sun50i_domain->iommu; local 410 struct sun50i_iommu *iommu = sun50i_domain->iommu; local 426 sun50i_iommu_enable(struct sun50i_iommu *iommu) argument 508 sun50i_iommu_disable(struct sun50i_iommu *iommu) argument 523 sun50i_iommu_alloc_page_table(struct sun50i_iommu *iommu, gfp_t gfp) argument 546 sun50i_iommu_free_page_table(struct sun50i_iommu *iommu, u32 *page_table) argument 558 struct sun50i_iommu *iommu = sun50i_domain->iommu; local 599 struct sun50i_iommu *iommu = sun50i_domain->iommu; local 712 sun50i_iommu_attach_domain(struct sun50i_iommu *iommu, struct sun50i_iommu_domain *sun50i_domain) argument 728 sun50i_iommu_detach_domain(struct sun50i_iommu *iommu, struct sun50i_iommu_domain *sun50i_domain) argument 764 struct sun50i_iommu *iommu = dev_iommu_priv_get(dev); local 791 struct sun50i_iommu *iommu; local 813 struct sun50i_iommu *iommu; local 852 sun50i_iommu_report_fault(struct sun50i_iommu *iommu, unsigned master, phys_addr_t iova, unsigned prot) argument 867 sun50i_iommu_handle_pt_irq(struct sun50i_iommu *iommu, unsigned addr_reg, unsigned blame_reg) argument 891 sun50i_iommu_handle_perm_irq(struct sun50i_iommu *iommu) argument 949 struct sun50i_iommu *iommu = dev_id; local 986 struct sun50i_iommu *iommu; local [all...] |
H A D | rockchip-iommu.c | 17 #include <linux/iommu.h> 29 #include "iommu-pages.h" 115 struct iommu_device iommu; member in struct:rk_iommu 117 struct iommu_domain *domain; /* domain to which iommu is attached */ 122 struct rk_iommu *iommu; member in struct:rk_iommudata 143 * The Rockchip rk3288 iommu uses a 2-level page table. 152 * Each iommu device has a MMU_DTE_ADDR register that contains the physical 346 static void rk_iommu_command(struct rk_iommu *iommu, u32 command) argument 350 for (i = 0; i < iommu->num_mmu; i++) 351 writel(command, iommu 358 rk_iommu_zap_lines(struct rk_iommu *iommu, dma_addr_t iova_start, size_t size) argument 375 rk_iommu_is_stall_active(struct rk_iommu *iommu) argument 387 rk_iommu_is_paging_enabled(struct rk_iommu *iommu) argument 399 rk_iommu_is_reset_done(struct rk_iommu *iommu) argument 410 rk_iommu_enable_stall(struct rk_iommu *iommu) argument 435 rk_iommu_disable_stall(struct rk_iommu *iommu) argument 456 rk_iommu_enable_paging(struct rk_iommu *iommu) argument 477 rk_iommu_disable_paging(struct rk_iommu *iommu) argument 498 rk_iommu_force_reset(struct rk_iommu *iommu) argument 534 log_iova(struct rk_iommu *iommu, int index, dma_addr_t iova) argument 583 struct rk_iommu *iommu = dev_id; local 687 struct rk_iommu *iommu; local 909 rk_iommu_disable(struct rk_iommu *iommu) argument 926 rk_iommu_enable(struct rk_iommu *iommu) argument 963 struct rk_iommu *iommu; local 1008 struct rk_iommu *iommu; local 1123 struct rk_iommu *iommu; local 1185 struct rk_iommu *iommu; local 1304 struct rk_iommu *iommu = platform_get_drvdata(pdev); local 1318 struct rk_iommu *iommu = dev_get_drvdata(dev); local 1329 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 | svm.c | 22 #include "iommu.h" 25 #include "../iommu-pages.h" 30 int intel_svm_enable_prq(struct intel_iommu *iommu) argument 35 iommu->prq = iommu_alloc_pages_node(iommu->node, GFP_KERNEL, PRQ_ORDER); 36 if (!iommu->prq) { 38 iommu->name); 42 irq = dmar_alloc_hwirq(IOMMU_IRQ_ID_OFFSET_PRQ + iommu->seq_id, iommu->node, iommu); 91 intel_svm_finish_prq(struct intel_iommu *iommu) argument 114 intel_svm_check(struct intel_iommu *iommu) argument 201 struct intel_iommu *iommu = info->iommu; local 296 struct intel_iommu *iommu; local 382 intel_svm_prq_report(struct intel_iommu *iommu, struct device *dev, struct page_req_dsc *desc) argument 404 handle_bad_prq_event(struct intel_iommu *iommu, struct page_req_dsc *req, int result) argument 429 struct intel_iommu *iommu = d; local 527 struct intel_iommu *iommu = info->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 | irq_remapping.c | 24 #include "iommu.h" 26 #include "../iommu-pages.h" 35 struct intel_iommu *iommu; member in struct:ioapic_scope 42 struct intel_iommu *iommu; member in struct:hpet_scope 49 struct intel_iommu *iommu; member in struct:irq_2_iommu 77 * ->iommu->register_lock 86 static void iommu_disable_irq_remapping(struct intel_iommu *iommu); 90 static bool ir_pre_enabled(struct intel_iommu *iommu) argument 92 return (iommu->flags & VTD_FLAG_IRQ_REMAP_PRE_ENABLED); 95 static void clear_ir_pre_enabled(struct intel_iommu *iommu) argument 100 init_ir_status(struct intel_iommu *iommu) argument 109 alloc_irte(struct intel_iommu *iommu, struct irq_2_iommu *irq_iommu, u16 count) argument 149 qi_flush_iec(struct intel_iommu *iommu, int index, int mask) argument 165 struct intel_iommu *iommu; local 236 struct intel_iommu *iommu; local 424 iommu_load_old_irte(struct intel_iommu *iommu) argument 466 iommu_set_irq_remapping(struct intel_iommu *iommu, int mode) argument 494 iommu_enable_irq_remapping(struct intel_iommu *iommu) argument 528 intel_setup_irq_remapping(struct intel_iommu *iommu) argument 633 intel_teardown_irq_remapping(struct intel_iommu *iommu) argument 655 iommu_disable_irq_remapping(struct intel_iommu *iommu) argument 698 struct intel_iommu *iommu; local 714 struct intel_iommu *iommu; local 788 struct intel_iommu *iommu; local 814 struct intel_iommu *iommu; local 842 ir_parse_one_hpet_scope(struct acpi_dmar_device_scope *scope, struct intel_iommu *iommu, struct acpi_dmar_hardware_unit *drhd) argument 887 ir_parse_one_ioapic_scope(struct acpi_dmar_device_scope *scope, struct intel_iommu *iommu, struct acpi_dmar_hardware_unit *drhd) argument 932 ir_parse_ioapic_hpet_scope(struct acpi_dmar_header *header, struct intel_iommu *iommu) argument 956 ir_remove_ioapic_hpet_scope(struct intel_iommu *iommu) argument 976 struct intel_iommu *iommu; local 1027 struct intel_iommu *iommu = NULL; local 1050 struct intel_iommu *iommu = NULL; local 1409 struct intel_iommu *iommu = domain->host_data; local 1506 struct intel_iommu *iommu = NULL; local 1533 dmar_ir_add(struct dmar_drhd_unit *dmaru, struct intel_iommu *iommu) argument 1573 struct intel_iommu *iommu = dmaru->iommu; local [all...] |
H A D | perf.h | 38 int dmar_latency_enable(struct intel_iommu *iommu, enum latency_type type); 39 void dmar_latency_disable(struct intel_iommu *iommu, enum latency_type type); 40 bool dmar_latency_enabled(struct intel_iommu *iommu, enum latency_type type); 41 void dmar_latency_update(struct intel_iommu *iommu, enum latency_type type, 43 int dmar_latency_snapshot(struct intel_iommu *iommu, char *str, size_t size); 46 dmar_latency_enable(struct intel_iommu *iommu, enum latency_type type) argument 52 dmar_latency_disable(struct intel_iommu *iommu, enum latency_type type) argument 57 dmar_latency_enabled(struct intel_iommu *iommu, enum latency_type type) argument 63 dmar_latency_update(struct intel_iommu *iommu, enum latency_type type, u64 latency) argument 68 dmar_latency_snapshot(struct intel_iommu *iommu, cha argument [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" 23 #include "../iommu-pages.h" 63 dir = iommu_alloc_pages_node(info->iommu->node, GFP_KERNEL, order); 74 if (!ecap_coherent(info->iommu->ecap)) 149 entries = iommu_alloc_page_node(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 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 | iommu.c | 27 #include "iommu.h" 28 #include "../dma-iommu.h" 30 #include "../iommu-pages.h" 126 * released by the iommu subsystem after being returned. The caller 130 struct device *device_rbtree_find(struct intel_iommu *iommu, u16 rid) argument 136 spin_lock_irqsave(&iommu->device_rbtree_lock, flags); 137 node = rb_find(&rid, &iommu->device_rbtree, device_rid_cmp_key); 140 spin_unlock_irqrestore(&iommu->device_rbtree_lock, flags); 145 static int device_rbtree_insert(struct intel_iommu *iommu, argument 151 spin_lock_irqsave(&iommu 162 struct intel_iommu *iommu = info->iommu; local 200 struct intel_iommu *iommu; /* the corresponding iommu */ member in struct:dmar_satc_unit 230 translation_pre_enabled(struct intel_iommu *iommu) argument 235 clear_translation_pre_enabled(struct intel_iommu *iommu) argument 240 init_translation_status(struct intel_iommu *iommu) argument 313 __iommu_calculate_sagaw(struct intel_iommu *iommu) argument 331 __iommu_calculate_agaw(struct intel_iommu *iommu, int max_gaw) argument 348 iommu_calculate_max_sagaw(struct intel_iommu *iommu) argument 358 iommu_calculate_agaw(struct intel_iommu *iommu) argument 363 iommu_paging_structure_coherency(struct intel_iommu *iommu) argument 373 struct intel_iommu *iommu; local 403 struct intel_iommu *iommu; local 498 iommu_context_addr(struct intel_iommu *iommu, u8 bus, u8 devfn, int alloc) argument 596 iommu_is_dummy(struct intel_iommu *iommu, struct device *dev) argument 617 struct intel_iommu *iommu; local 690 free_context_table(struct intel_iommu *iommu) argument 716 pgtable_walk(struct intel_iommu *iommu, unsigned long pfn, u8 bus, u8 devfn, struct dma_pte *parent, int level) argument 740 dmar_fault_dump_ptes(struct intel_iommu *iommu, u16 source_id, unsigned long long addr, u32 pasid) argument 1097 iommu_alloc_root_entry(struct intel_iommu *iommu) argument 1114 iommu_set_root_entry(struct intel_iommu *iommu) argument 1148 iommu_flush_write_buffer(struct intel_iommu *iommu) argument 1167 __iommu_flush_context(struct intel_iommu *iommu, u16 did, u16 source_id, u8 function_mask, u64 type) argument 1203 __iommu_flush_iotlb(struct intel_iommu *iommu, u16 did, u64 addr, unsigned int size_order, u64 type) argument 1254 domain_lookup_dev_info(struct dmar_domain *domain, struct intel_iommu *iommu, u8 bus, u8 devfn) argument 1382 iommu_disable_protect_mem_regions(struct intel_iommu *iommu) argument 1402 iommu_enable_translation(struct intel_iommu *iommu) argument 1418 iommu_disable_translation(struct intel_iommu *iommu) argument 1438 iommu_init_domains(struct intel_iommu *iommu) argument 1473 disable_dmar_iommu(struct intel_iommu *iommu) argument 1490 free_dmar_iommu(struct intel_iommu *iommu) argument 1553 domain_attach_iommu(struct dmar_domain *domain, struct intel_iommu *iommu) argument 1605 domain_detach_iommu(struct dmar_domain *domain, struct intel_iommu *iommu) argument 1653 domain_context_mapping_one(struct dmar_domain *domain, struct intel_iommu *iommu, u8 bus, u8 devfn) argument 1770 struct intel_iommu *iommu = info->iommu; local 1781 struct intel_iommu *iommu = info->iommu; local 1960 struct intel_iommu *iommu = info->iommu; local 1991 domain_setup_first_level(struct intel_iommu *iommu, struct dmar_domain *domain, struct device *dev, u32 pasid) argument 2109 struct intel_iommu *iommu = info->iommu; local 2203 intel_iommu_init_qi(struct intel_iommu *iommu) argument 2238 copy_context_table(struct intel_iommu *iommu, struct root_entry *old_re, struct context_entry **tbl, int bus, bool ext) argument 2322 copy_translation_tables(struct intel_iommu *iommu) argument 2410 struct intel_iommu *iommu; local 2597 struct intel_iommu *iommu = NULL; local 2631 struct intel_iommu *iommu; local 2644 struct intel_iommu *iommu = NULL; local 2671 struct intel_iommu *iommu = NULL; local 2921 struct intel_iommu *iommu = dmaru->iommu; local 2993 struct intel_iommu *iommu = dmaru->iommu; local 3057 dmar_ats_supported(struct pci_dev *dev, struct intel_iommu *iommu) argument 3222 struct intel_iommu *iommu = NULL; local 3232 struct intel_iommu *iommu = NULL; local 3259 struct intel_iommu *iommu = dev_to_intel_iommu(dev); local 3269 struct intel_iommu *iommu = dev_to_intel_iommu(dev); local 3277 struct intel_iommu *iommu = dev_to_intel_iommu(dev); local 3285 struct intel_iommu *iommu = dev_to_intel_iommu(dev); local 3293 struct intel_iommu *iommu = dev_to_intel_iommu(dev); local 3301 struct intel_iommu *iommu = dev_to_intel_iommu(dev); local 3415 struct intel_iommu *iommu; local 3577 struct intel_iommu *iommu = info->iommu; local 3679 struct intel_iommu *iommu = info->iommu; local 3740 struct intel_iommu *iommu = info->iommu; local 4005 struct intel_iommu *iommu; local 4098 struct intel_iommu *iommu = info->iommu; local 4184 struct intel_iommu *iommu; local 4220 struct intel_iommu *iommu; local 4259 struct intel_iommu *iommu = info->iommu; local 4347 struct intel_iommu *iommu = info->iommu; local 4374 struct intel_iommu *iommu = info->iommu; local 4437 struct intel_iommu *iommu = info->iommu; local 4859 ecmd_submit_sync(struct intel_iommu *iommu, u8 ecmd, u64 oa, u64 ob) argument [all...] |
H A D | dmar.c | 28 #include <linux/iommu.h> 33 #include "iommu.h" 35 #include "../iommu-pages.h" 68 static void free_iommu(struct intel_iommu *iommu); 462 if (dmaru->iommu) 463 free_iommu(dmaru->iommu); 502 drhd->iommu->node = node; 940 x86_init.iommu.iommu_init = intel_iommu_init; 953 static void unmap_iommu(struct intel_iommu *iommu) argument 955 iounmap(iommu 967 map_iommu(struct intel_iommu *iommu, struct dmar_drhd_unit *drhd) argument 1041 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 1920 dmar_msi_reg(struct intel_iommu *iommu, int irq) argument 1934 struct intel_iommu *iommu = irq_data_get_irq_handler_data(data); local 1948 struct intel_iommu *iommu = irq_data_get_irq_handler_data(data); local 1962 struct intel_iommu *iommu = irq_get_handler_data(irq); local 1975 struct intel_iommu *iommu = irq_get_handler_data(irq); local 1986 dmar_fault_do_one(struct intel_iommu *iommu, int type, u8 fault_reason, u32 pasid, u16 source_id, unsigned long long addr) argument 2025 struct intel_iommu *iommu = dev_id; local 2102 dmar_set_interrupt(struct intel_iommu *iommu) argument 2129 struct intel_iommu *iommu; local 2163 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/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>
|