| /drivers/iommu/amd/ |
| A D | init.c | 286 iommu->index, iommu->pci_seg->id, in get_global_efr() 1649 if (iommu->iommu.dev) { in free_sysfs() 1650 iommu_device_unregister(&iommu->iommu); in free_sysfs() 1651 iommu_device_sysfs_remove(&iommu->iommu); in free_sysfs() 1855 iommu->pci_seg->rlookup_table[iommu->devid] = NULL; in init_iommu_one_late() 2055 BUG_ON(iommu->iommu.max_pasids & ~PASID_MASK); in iommu_init_pci() 2104 iommu->stored_l2[i] = iommu_read_l2(iommu, i); in iommu_init_pci() 2110 ret = iommu_device_sysfs_add(&iommu->iommu, &iommu->dev->dev, in iommu_init_pci() 2132 iommu_device_sysfs_remove(&iommu->iommu); in iommu_init_pci() 2699 iommu_write_l2(iommu, i, iommu->stored_l2[i]); in iommu_apply_resume_quirks() [all …]
|
| A D | ppr.c | 22 iommu->ppr_log = iommu_alloc_4k_pages(iommu, GFP_KERNEL | __GFP_ZERO, in amd_iommu_alloc_ppr_log() 31 if (iommu->ppr_log == NULL) in amd_iommu_enable_ppr_log() 83 struct device *dev = iommu->iommu.dev; in ppr_is_valid() 166 if (iommu->ppr_log == NULL) in amd_iommu_poll_ppr_log() 222 if (iommu->iopf_queue) in amd_iommu_iopf_init() 225 snprintf(iommu->iopfq_name, sizeof(iommu->iopfq_name), "amdvi-%#x", in amd_iommu_iopf_init() 226 PCI_SEG_DEVID_TO_SBDF(iommu->pci_seg->id, iommu->devid)); in amd_iommu_iopf_init() 228 iommu->iopf_queue = iopf_queue_alloc(iommu->iopfq_name); in amd_iommu_iopf_init() 229 if (!iommu->iopf_queue) in amd_iommu_iopf_init() 239 iommu->iopf_queue = NULL; in amd_iommu_iopf_uninit() [all …]
|
| A D | debugfs.c | 31 iommu->dbg_mmio_offset = -1; in iommu_mmio_write() 40 if (iommu->dbg_mmio_offset > iommu->mmio_phys_end - 4) { in iommu_mmio_write() 58 value = readq(iommu->mmio_base + iommu->dbg_mmio_offset); in iommu_mmio_show() 101 err = pci_read_config_dword(iommu->dev, iommu->cap_ptr + iommu->dbg_cap_offset, &value); in iommu_capability_show() 143 struct amd_iommu *iommu; in devid_write() local 178 if (!iommu) { in devid_write() 218 if (!iommu) in dump_dte() 308 if (!iommu) in dump_irte() 378 debugfs_create_file("mmio", 0644, iommu->debugfs, iommu, in amd_iommu_debugfs_setup() 380 debugfs_create_file("capability", 0644, iommu->debugfs, iommu, in amd_iommu_debugfs_setup() [all …]
|
| A D | iommu.c | 882 struct device *dev = iommu->iommu.dev; in iommu_print_event() 2222 pdom_iommu_info->iommu = iommu; in pdom_attach_iommu() 2393 if (!iommu->iommu.ops) in amd_iommu_probe_device() 2397 return &iommu->iommu; in amd_iommu_probe_device() 2408 iommu_dev = &iommu->iommu; in amd_iommu_probe_device() 3215 int nid = iommu && iommu->dev ? dev_to_node(&iommu->dev->dev) : NUMA_NO_NODE; in alloc_irq_table() 3581 struct amd_iommu *iommu = data->iommu; in irq_remapping_prepare_irte() local 3721 data->iommu = iommu; in irq_remapping_alloc() 3774 struct amd_iommu *iommu = data->iommu; in irq_remapping_activate() local 3791 struct amd_iommu *iommu = data->iommu; in irq_remapping_deactivate() local [all …]
|
| A D | amd_iommu.h | 23 void amd_iommu_restart_ga_log(struct amd_iommu *iommu); 24 void amd_iommu_restart_ppr_log(struct amd_iommu *iommu); 26 void iommu_feature_enable(struct amd_iommu *iommu, u8 bit); 27 void *__init iommu_alloc_4k_pages(struct amd_iommu *iommu, 65 int amd_iommu_iopf_init(struct amd_iommu *iommu); 66 void amd_iommu_iopf_uninit(struct amd_iommu *iommu); 69 int amd_iommu_iopf_add_device(struct amd_iommu *iommu, 82 void amd_iommu_enable_ppr_log(struct amd_iommu *iommu); 83 void amd_iommu_poll_ppr_log(struct amd_iommu *iommu); 90 void amd_iommu_flush_all_caches(struct amd_iommu *iommu); [all …]
|
| /drivers/iommu/ |
| A D | sun50i-iommu.c | 294 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_table_flush() local 387 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_iommu_flush_iotlb_all() local 398 if (!iommu) in sun50i_iommu_flush_iotlb_all() 410 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_iommu_iotlb_sync_map() local 559 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_dte_get_page_table() local 600 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_iommu_map() local 728 sun50i_domain->iommu = iommu; in sun50i_iommu_attach_domain() 806 if (!iommu) in sun50i_iommu_attach_device() 831 return &iommu->iommu; in sun50i_iommu_probe_device() 1058 iommu_device_unregister(&iommu->iommu); in sun50i_iommu_probe() [all …]
|
| A D | rockchip-iommu.c | 625 report_iommu_fault(iommu->domain, iommu->dev, iova, in rk_iommu_irq() 644 clk_bulk_disable(iommu->num_clocks, iommu->clocks); in rk_iommu_irq() 701 clk_bulk_disable(iommu->num_clocks, iommu->clocks); in rk_iommu_zap_iova() 924 clk_bulk_disable(iommu->num_clocks, iommu->clocks); in rk_iommu_disable() 958 clk_bulk_disable(iommu->num_clocks, iommu->clocks); in rk_iommu_enable() 1139 return &iommu->iommu; in rk_iommu_probe_device() 1240 iommu->clocks = devm_kcalloc(iommu->dev, iommu->num_clocks, in rk_iommu_probe() 1253 err = devm_clk_bulk_get(iommu->dev, iommu->num_clocks, iommu->clocks); in rk_iommu_probe() 1291 iommu_device_sysfs_remove(&iommu->iommu); in rk_iommu_probe() 1294 clk_bulk_unprepare(iommu->num_clocks, iommu->clocks); in rk_iommu_probe() [all …]
|
| A D | msm_iommu.c | 73 if (iommu->clk) in __disable_clocks() 388 if (!iommu) in msm_iommu_probe_device() 391 return &iommu->iommu; in msm_iommu_probe_device() 721 if (!iommu) in msm_iommu_probe() 729 return dev_err_probe(iommu->dev, PTR_ERR(iommu->pclk), in msm_iommu_probe() 734 return dev_err_probe(iommu->dev, PTR_ERR(iommu->clk), in msm_iommu_probe() 738 iommu->base = devm_ioremap_resource(iommu->dev, r); in msm_iommu_probe() 756 msm_iommu_reset(iommu->base, iommu->ncb); in msm_iommu_probe() 774 iommu); in msm_iommu_probe() 782 ret = iommu_device_sysfs_add(&iommu->iommu, iommu->dev, NULL, in msm_iommu_probe() [all …]
|
| A D | iommu-sysfs.c | 62 iommu->dev = kzalloc(sizeof(*iommu->dev), GFP_KERNEL); in iommu_device_sysfs_add() 63 if (!iommu->dev) in iommu_device_sysfs_add() 66 device_initialize(iommu->dev); in iommu_device_sysfs_add() 68 iommu->dev->class = &iommu_class; in iommu_device_sysfs_add() 69 iommu->dev->parent = parent; in iommu_device_sysfs_add() 70 iommu->dev->groups = groups; in iommu_device_sysfs_add() 78 ret = device_add(iommu->dev); in iommu_device_sysfs_add() 82 dev_set_drvdata(iommu->dev, iommu); in iommu_device_sysfs_add() 87 put_device(iommu->dev); in iommu_device_sysfs_add() 95 device_unregister(iommu->dev); in iommu_device_sysfs_remove() [all …]
|
| A D | Makefile | 6 obj-$(CONFIG_IOMMU_API) += iommu.o 7 obj-$(CONFIG_IOMMU_SUPPORT) += iommu-pages.o 8 obj-$(CONFIG_IOMMU_API) += iommu-traces.o 9 obj-$(CONFIG_IOMMU_API) += iommu-sysfs.o 10 obj-$(CONFIG_IOMMU_DEBUGFS) += iommu-debugfs.o 11 obj-$(CONFIG_IOMMU_DMA) += dma-iommu.o 23 obj-$(CONFIG_OMAP_IOMMU) += omap-iommu.o 26 obj-$(CONFIG_SUN50I_IOMMU) += sun50i-iommu.o 30 obj-$(CONFIG_S390_IOMMU) += s390-iommu.o 33 obj-$(CONFIG_IOMMU_SVA) += iommu-sva.o [all …]
|
| /drivers/iommu/intel/ |
| A D | prq.c | 73 iommu = info->iommu; in intel_iommu_drain_pasid_prq() 293 iommu->prq = in intel_iommu_enable_prq() 295 if (!iommu->prq) { in intel_iommu_enable_prq() 297 iommu->name); in intel_iommu_enable_prq() 301 irq = dmar_alloc_hwirq(IOMMU_IRQ_ID_OFFSET_PRQ + iommu->seq_id, iommu->node, iommu); in intel_iommu_enable_prq() 310 snprintf(iommu->iopfq_name, sizeof(iommu->iopfq_name), in intel_iommu_enable_prq() 320 snprintf(iommu->prq_name, sizeof(iommu->prq_name), "dmar%d-prq", iommu->seq_id); in intel_iommu_enable_prq() 323 iommu->prq_name, iommu); in intel_iommu_enable_prq() 342 iommu->pr_irq = 0; in intel_iommu_enable_prq() 357 free_irq(iommu->pr_irq, iommu); in intel_iommu_finish_prq() [all …]
|
| A D | pasid.c | 286 iommu->flush.flush_iotlb(iommu, did, 0, 0, DMA_TLB_DSI_FLUSH); in intel_pasid_tear_down_entry() 639 iommu->flush.flush_iotlb(iommu, did, 0, 0, DMA_TLB_DSI_FLUSH); in intel_pasid_setup_dirty_tracking() 922 struct intel_iommu *iommu = info->iommu; in device_pasid_table_teardown() local 984 struct intel_iommu *iommu = info->iommu; in context_entry_set_pasid_table() local 1010 struct intel_iommu *iommu = info->iommu; in device_pasid_table_setup() local 1038 iommu->flush.flush_context(iommu, 0, in device_pasid_table_setup() 1043 iommu->flush.flush_iotlb(iommu, 0, 0, 0, DMA_TLB_GLOBAL_FLUSH); in device_pasid_table_setup() 1064 iommu->flush.flush_context(iommu, 0, in device_pasid_table_setup() 1068 iommu->flush.flush_iotlb(iommu, 0, 0, 0, DMA_TLB_DSI_FLUSH); in device_pasid_table_setup() 1132 struct intel_iommu *iommu = info->iommu; in intel_context_flush_no_pasid() local [all …]
|
| A D | irq_remapping.c | 133 irq_iommu->iommu = iommu; in alloc_irte() 169 iommu = irq_iommu->iommu; in modify_irte() 234 iommu = irq_iommu->iommu; in clear_entries() 626 if (iommu && iommu->ir_table) { in intel_teardown_irq_remapping() 852 if (ir_hpet[count].iommu == iommu && in ir_parse_one_hpet_scope() 863 ir_hpet[free].iommu = iommu; in ir_parse_one_hpet_scope() 897 if (ir_ioapic[count].iommu == iommu && in ir_parse_one_ioapic_scope() 910 ir_ioapic[free].iommu = iommu; in ir_parse_one_ioapic_scope() 947 if (ir_hpet[i].iommu == iommu) in ir_remove_ioapic_hpet_scope() 951 if (ir_ioapic[i].iommu == iommu) in ir_remove_ioapic_hpet_scope() [all …]
|
| A D | iommu.c | 163 struct intel_iommu *iommu = info->iommu; in device_rbtree_remove() local 474 if (!iommu || iommu->drhd->ignored) in iommu_is_dummy() 1367 info->iommu = iommu; in domain_attach_iommu() 1445 iommu->flush.flush_context(iommu, 0, in context_present_cache_flush() 1512 struct intel_iommu *iommu = info->iommu; in domain_context_mapping_cb() local 1523 struct intel_iommu *iommu = info->iommu; in domain_context_mapping() local 1708 struct intel_iommu *iommu = info->iommu; in domain_context_clear_one() local 2845 iommu = drhd->iommu; in intel_iommu_shutdown() 3769 if (!iommu || !iommu->iommu.ops) in intel_iommu_probe_device() 3787 info->iommu = iommu; in intel_iommu_probe_device() [all …]
|
| A D | dmar.c | 972 if (!request_mem_region(iommu->reg_phys, iommu->reg_size, iommu->name)) { in map_iommu() 978 iommu->reg = ioremap(iommu->reg_phys, iommu->reg_size); in map_iommu() 1008 iommu->reg = ioremap(iommu->reg_phys, iommu->reg_size); in map_iommu() 1060 snprintf(iommu->name, sizeof(iommu->name), "dmar%d", iommu->seq_id); in alloc_iommu() 1130 iommu->iommu.max_pasids = 2UL << ecap_pss(iommu->ecap); in alloc_iommu() 1151 drhd->iommu = iommu; in alloc_iommu() 1172 iommu_device_unregister(&iommu->iommu); in free_iommu() 1180 free_irq(iommu->pr_irq, iommu); in free_iommu() 1184 free_irq(iommu->irq, iommu); in free_iommu() 2025 irq = dmar_alloc_hwirq(iommu->seq_id, iommu->node, iommu); in dmar_set_interrupt() [all …]
|
| A D | debugfs.c | 116 struct intel_iommu *iommu; in iommu_regset_show() local 267 spin_lock(&iommu->lock); in root_tbl_walk() 293 iommu->name); in dmar_translation_struct_show() 296 root_tbl_walk(m, iommu); in dmar_translation_struct_show() 372 iommu->name); in domain_translation_struct_show() 389 spin_lock(&iommu->lock); in domain_translation_struct_show() 519 qi = iommu->qi; in invalidation_queue_show() 520 shift = qi_shift(iommu); in invalidation_queue_show() 610 iommu->name); in ir_translation_struct_show() 630 iommu->name); in ir_translation_struct_show() [all …]
|
| A D | cache.c | 34 return tag->iommu == iommu; in cache_tage_match() 47 struct intel_iommu *iommu = info->iommu; in cache_tag_assign() local 57 tag->iommu = iommu; in cache_tag_assign() 65 tag->dev = iommu->iommu.dev; in cache_tag_assign() 77 if (temp->iommu == iommu) in cache_tag_assign() 98 struct intel_iommu *iommu = info->iommu; in cache_tag_unassign() local 202 struct intel_iommu *iommu = info->iommu; in domain_get_id_for_dev() local 447 if (iommu && iommu != tag->iommu) in cache_tag_flush_range() 449 iommu = tag->iommu; in cache_tag_flush_range() 510 if (iommu && iommu != tag->iommu) in cache_tag_flush_range_np() [all …]
|
| A D | perfmon.c | 327 struct intel_iommu *iommu = iommu_pmu->iommu; in iommu_pmu_start() local 364 struct intel_iommu *iommu = iommu_pmu->iommu; in iommu_pmu_stop() local 476 struct intel_iommu *iommu = iommu_pmu->iommu; in iommu_pmu_enable() local 484 struct intel_iommu *iommu = iommu_pmu->iommu; in iommu_pmu_disable() local 690 iommu_pmu->iommu = iommu; in alloc_iommu_pmu() 723 iommu->pmu = NULL; in free_iommu_pmu() 731 irq = dmar_alloc_hwirq(IOMMU_IRQ_ID_OFFSET_PERF + iommu->seq_id, iommu->node, iommu); in iommu_pmu_set_interrupt() 742 iommu->perf_irq = 0; in iommu_pmu_set_interrupt() 750 if (!iommu->perf_irq) in iommu_pmu_unset_interrupt() 753 free_irq(iommu->perf_irq, iommu); in iommu_pmu_unset_interrupt() [all …]
|
| A D | trace.h | 24 TP_ARGS(iommu, qw0, qw1, qw2, qw3), 31 __string(iommu, iommu->name) 35 __assign_str(iommu); 53 __get_str(iommu), 71 __string(iommu, iommu->name) 82 __assign_str(iommu); 97 __string(iommu, tag->iommu->name) 105 __assign_str(iommu); 113 __get_str(iommu), __get_str(dev), 138 __string(iommu, tag->iommu->name) [all …]
|
| /drivers/iommu/riscv/ |
| A D | iommu.c | 233 queue->iommu = iommu; in riscv_iommu_queue_enable() 286 struct riscv_iommu_device *iommu = queue->iommu; in riscv_iommu_queue_disable() local 529 struct riscv_iommu_device *iommu = queue->iommu; in riscv_iommu_fltq_process() local 695 iommu->ddt_root = devm_ioremap(iommu->dev, in riscv_iommu_iodir_alloc() 703 iommu->ddt_phys = __pa(iommu->ddt_root); in riscv_iommu_iodir_alloc() 1525 return &iommu->iommu; in riscv_iommu_probe_device() 1602 iommu_device_unregister(&iommu->iommu); in riscv_iommu_remove() 1603 iommu_device_sysfs_remove(&iommu->iommu); in riscv_iommu_remove() 1624 rc = riscv_iommu_queue_alloc(iommu, &iommu->cmdq, in riscv_iommu_init() 1653 rc = iommu_device_register(&iommu->iommu, &riscv_iommu_ops, iommu->dev); in riscv_iommu_init() [all …]
|
| A D | iommu-platform.c | 52 iommu = devm_kzalloc(dev, sizeof(*iommu), GFP_KERNEL); in riscv_iommu_platform_probe() 53 if (!iommu) in riscv_iommu_platform_probe() 56 iommu->dev = dev; in riscv_iommu_platform_probe() 58 if (IS_ERR(iommu->reg)) in riscv_iommu_platform_probe() 62 dev_set_drvdata(dev, iommu); in riscv_iommu_platform_probe() 65 iommu->caps = riscv_iommu_readq(iommu, RISCV_IOMMU_REG_CAPABILITIES); in riscv_iommu_platform_probe() 66 iommu->fctl = riscv_iommu_readl(iommu, RISCV_IOMMU_REG_FCTL); in riscv_iommu_platform_probe() 69 if (iommu->irqs_count <= 0) in riscv_iommu_platform_probe() 100 riscv_iommu_writel(iommu, RISCV_IOMMU_REG_FCTL, iommu->fctl); in riscv_iommu_platform_probe() 121 riscv_iommu_writel(iommu, RISCV_IOMMU_REG_FCTL, iommu->fctl); in riscv_iommu_platform_probe() [all …]
|
| A D | iommu-pci.c | 36 struct riscv_iommu_device *iommu; in riscv_iommu_pci_probe() local 53 iommu = devm_kzalloc(dev, sizeof(*iommu), GFP_KERNEL); in riscv_iommu_pci_probe() 54 if (!iommu) in riscv_iommu_pci_probe() 57 iommu->dev = dev; in riscv_iommu_pci_probe() 61 dev_set_drvdata(dev, iommu); in riscv_iommu_pci_probe() 64 iommu->caps = riscv_iommu_readq(iommu, RISCV_IOMMU_REG_CAPABILITIES); in riscv_iommu_pci_probe() 65 iommu->fctl = riscv_iommu_readl(iommu, RISCV_IOMMU_REG_FCTL); in riscv_iommu_pci_probe() 84 iommu->irqs_count = rc; in riscv_iommu_pci_probe() 91 riscv_iommu_writel(iommu, RISCV_IOMMU_REG_FCTL, iommu->fctl); in riscv_iommu_pci_probe() 101 riscv_iommu_remove(iommu); in riscv_iommu_pci_remove() [all …]
|
| A D | iommu.h | 38 struct iommu_device iommu; member 65 int riscv_iommu_init(struct riscv_iommu_device *iommu); 66 void riscv_iommu_remove(struct riscv_iommu_device *iommu); 69 #define riscv_iommu_readl(iommu, addr) \ argument 70 readl_relaxed((iommu)->reg + (addr)) 72 #define riscv_iommu_readq(iommu, addr) \ argument 73 readq_relaxed((iommu)->reg + (addr)) 75 #define riscv_iommu_writel(iommu, addr, val) \ argument 76 writel_relaxed((val), (iommu)->reg + (addr)) 78 #define riscv_iommu_writeq(iommu, addr, val) \ argument [all …]
|
| /drivers/vfio/ |
| A D | vfio_iommu_type1.c | 833 if (!iommu->v2) in vfio_iommu_type1_pin_pages() 1151 iommu->dma_avail++; in vfio_remove_dma() 2521 iommu = kzalloc(sizeof(*iommu), GFP_KERNEL); in vfio_iommu_type1_open() 2522 if (!iommu) in vfio_iommu_type1_open() 2530 iommu->v2 = true; in vfio_iommu_type1_open() 2533 kfree(iommu); in vfio_iommu_type1_open() 2547 return iommu; in vfio_iommu_type1_open() 2587 kfree(iommu); in vfio_iommu_type1_release() 2630 return iommu && !vfio_iommu_has_emulated(iommu); in vfio_iommu_type1_check_extension() 2632 if (!iommu) in vfio_iommu_type1_check_extension() [all …]
|
| /drivers/gpu/drm/msm/ |
| A D | msm_iommu.c | 629 return iommu->base.handler(iommu->base.arg, iova, flags, ptr); in msm_gpu_fault_handler() 642 return iommu->base.handler(iommu->base.arg, iova, flags, NULL); in msm_disp_fault_handler() 698 kfree(iommu); in msm_iommu_destroy() 724 iommu = kzalloc(sizeof(*iommu), GFP_KERNEL); in msm_iommu_new() 725 if (!iommu) { in msm_iommu_new() 730 iommu->domain = domain; in msm_iommu_new() 738 kfree(iommu); in msm_iommu_new() 742 return &iommu->base; in msm_iommu_new() 755 iommu_set_fault_handler(iommu->domain, msm_disp_fault_handler, iommu); in msm_iommu_disp_new() 776 iommu->pt_cache = in msm_iommu_gpu_new() [all …]
|