/drivers/iommu/ |
D | amd_iommu_init.c | 245 static u32 iommu_read_l1(struct amd_iommu *iommu, u16 l1, u8 address) in iommu_read_l1() argument 249 pci_write_config_dword(iommu->dev, 0xf8, (address | l1 << 16)); in iommu_read_l1() 250 pci_read_config_dword(iommu->dev, 0xfc, &val); in iommu_read_l1() 254 static void iommu_write_l1(struct amd_iommu *iommu, u16 l1, u8 address, u32 val) in iommu_write_l1() argument 256 pci_write_config_dword(iommu->dev, 0xf8, (address | l1 << 16 | 1 << 31)); in iommu_write_l1() 257 pci_write_config_dword(iommu->dev, 0xfc, val); in iommu_write_l1() 258 pci_write_config_dword(iommu->dev, 0xf8, (address | l1 << 16)); in iommu_write_l1() 261 static u32 iommu_read_l2(struct amd_iommu *iommu, u8 address) in iommu_read_l2() argument 265 pci_write_config_dword(iommu->dev, 0xf0, address); in iommu_read_l2() 266 pci_read_config_dword(iommu->dev, 0xf4, &val); in iommu_read_l2() [all …]
|
D | dmar.c | 231 drhd->iommu->node = node; in dmar_parse_one_rhsa() 561 x86_init.iommu.iommu_init = intel_iommu_init; in detect_intel_iommu() 571 static void unmap_iommu(struct intel_iommu *iommu) in unmap_iommu() argument 573 iounmap(iommu->reg); in unmap_iommu() 574 release_mem_region(iommu->reg_phys, iommu->reg_size); in unmap_iommu() 585 static int map_iommu(struct intel_iommu *iommu, u64 phys_addr) in map_iommu() argument 589 iommu->reg_phys = phys_addr; in map_iommu() 590 iommu->reg_size = VTD_PAGE_SIZE; in map_iommu() 592 if (!request_mem_region(iommu->reg_phys, iommu->reg_size, iommu->name)) { in map_iommu() 598 iommu->reg = ioremap(iommu->reg_phys, iommu->reg_size); in map_iommu() [all …]
|
D | intel_irq_remapping.c | 21 struct intel_iommu *iommu; member 28 struct intel_iommu *iommu; member 61 *entry = *(irq_iommu->iommu->ir_table->base + index); in get_irte() 67 static int alloc_irte(struct intel_iommu *iommu, int irq, u16 count) in alloc_irte() argument 69 struct ir_table *table = iommu->ir_table; in alloc_irte() 90 if (mask > ecap_max_handle_mask(iommu->ecap)) { in alloc_irte() 94 ecap_max_handle_mask(iommu->ecap)); in alloc_irte() 120 irq_iommu->iommu = iommu; in alloc_irte() 130 static int qi_flush_iec(struct intel_iommu *iommu, int index, int mask) in qi_flush_iec() argument 138 return qi_submit_sync(&desc, iommu); in qi_flush_iec() [all …]
|
D | intel-iommu.c | 403 struct intel_iommu *iommu; /* IOMMU used by this device */ member 542 static int __iommu_calculate_agaw(struct intel_iommu *iommu, int max_gaw) in __iommu_calculate_agaw() argument 547 sagaw = cap_sagaw(iommu->cap); in __iommu_calculate_agaw() 560 int iommu_calculate_max_sagaw(struct intel_iommu *iommu) in iommu_calculate_max_sagaw() argument 562 return __iommu_calculate_agaw(iommu, MAX_AGAW_WIDTH); in iommu_calculate_max_sagaw() 570 int iommu_calculate_agaw(struct intel_iommu *iommu) in iommu_calculate_agaw() argument 572 return __iommu_calculate_agaw(iommu, DEFAULT_DOMAIN_ADDRESS_WIDTH); in iommu_calculate_agaw() 624 struct intel_iommu *iommu = NULL; in domain_update_iommu_superpage() local 633 for_each_active_iommu(iommu, drhd) { in domain_update_iommu_superpage() 634 mask &= cap_super_page_val(iommu->cap); in domain_update_iommu_superpage() [all …]
|
D | amd_iommu.c | 182 return dev->archdata.iommu; in get_dev_data() 424 if (dev->archdata.iommu) in iommu_init_device() 450 struct amd_iommu *iommu; in iommu_init_device() local 452 iommu = amd_iommu_rlookup_table[dev_data->devid]; in iommu_init_device() 453 dev_data->iommu_v2 = iommu->is_iommu_v2; in iommu_init_device() 456 dev->archdata.iommu = dev_data; in iommu_init_device() 617 static void iommu_print_event(struct amd_iommu *iommu, void *__evt) in iommu_print_event() argument 696 static void iommu_poll_events(struct amd_iommu *iommu) in iommu_poll_events() argument 700 head = readl(iommu->mmio_base + MMIO_EVT_HEAD_OFFSET); in iommu_poll_events() 701 tail = readl(iommu->mmio_base + MMIO_EVT_TAIL_OFFSET); in iommu_poll_events() [all …]
|
D | Makefile | 1 obj-$(CONFIG_IOMMU_API) += iommu.o 7 obj-$(CONFIG_INTEL_IOMMU) += iova.o intel-iommu.o 9 obj-$(CONFIG_OMAP_IOMMU) += omap-iommu.o 12 obj-$(CONFIG_OMAP_IOMMU_DEBUG) += omap-iommu-debug.o 15 obj-$(CONFIG_EXYNOS_IOMMU) += exynos-iommu.o 16 obj-$(CONFIG_SHMOBILE_IOMMU) += shmobile-iommu.o
|
D | amd_iommu_proto.h | 29 extern void amd_iommu_reset_cmd_buffer(struct amd_iommu *iommu); 78 static inline bool iommu_feature(struct amd_iommu *iommu, u64 f) in iommu_feature() argument 80 if (!(iommu->cap & (1 << IOMMU_CAP_EFR))) in iommu_feature() 83 return !!(iommu->features & f); in iommu_feature()
|
D | amd_iommu_types.h | 360 #define for_each_iommu(iommu) \ argument 361 list_for_each_entry((iommu), &amd_iommu_list, list) 362 #define for_each_iommu_safe(iommu, next) \ argument 363 list_for_each_entry_safe((iommu), (next), &amd_iommu_list, list) 704 extern void iommu_flush_all_caches(struct amd_iommu *iommu);
|
D | exynos-iommu.c | 254 struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu); in exynos_sysmmu_set_prefbuf() 307 struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu); in exynos_sysmmu_set_fault_handler() 490 struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu); in exynos_sysmmu_enable() 516 struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu); in exynos_sysmmu_disable() 528 struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu); in sysmmu_tlb_invalidate_entry() 553 struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu); in exynos_sysmmu_tlb_invalidate() 780 struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu); in exynos_iommu_attach_device() 822 struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu); in exynos_iommu_detach_device()
|
D | omap-iommu-debug.c | 376 dev->archdata.iommu = arch_data; in iommu_debug_register() 404 if (!dev->archdata.iommu) in iommu_debug_unregister() 407 kfree(dev->archdata.iommu); in iommu_debug_unregister() 409 dev->archdata.iommu = NULL; in iommu_debug_unregister()
|
D | shmobile-iommu.c | 124 struct shmobile_iommu_archdata *archdata = dev->archdata.iommu; in shmobile_iommu_attach_device() 153 struct shmobile_iommu_archdata *archdata = dev->archdata.iommu; in shmobile_iommu_detach_device() 351 dev->archdata.iommu = archdata; in shmobile_iommu_add_device()
|
D | omap-iommu.h | 108 struct omap_iommu_arch_data *arch_data = dev->archdata.iommu; in dev_to_omap_iommu()
|
D | omap-iommu.c | 1106 struct omap_iommu_arch_data *arch_data = dev->archdata.iommu; in omap_iommu_attach_dev() 1139 struct omap_iommu_arch_data *arch_data = dev->archdata.iommu; in _omap_iommu_detach_dev()
|
D | omap-iovmm.c | 356 new->iommu = obj; in alloc_iovm_area()
|
/drivers/vfio/ |
D | vfio_iommu_type1.c | 177 static long __vfio_dma_do_unmap(struct vfio_iommu *iommu, dma_addr_t iova, in __vfio_dma_do_unmap() argument 185 pfn = iommu_iova_to_phys(iommu->domain, iova) >> PAGE_SHIFT; in __vfio_dma_do_unmap() 187 iommu_unmap(iommu->domain, iova, PAGE_SIZE); in __vfio_dma_do_unmap() 194 static void vfio_dma_unmap(struct vfio_iommu *iommu, dma_addr_t iova, in vfio_dma_unmap() argument 199 unlocked = __vfio_dma_do_unmap(iommu, iova, npage, prot); in vfio_dma_unmap() 230 static int __vfio_dma_map(struct vfio_iommu *iommu, dma_addr_t iova, in __vfio_dma_map() argument 239 if (iommu_iova_to_phys(iommu->domain, iova)) in __vfio_dma_map() 244 if (iommu->cache) in __vfio_dma_map() 263 __vfio_dma_do_unmap(iommu, start, i, prot); in __vfio_dma_map() 278 ret = iommu_map(iommu->domain, iova, in __vfio_dma_map() [all …]
|
/drivers/staging/tidspbridge/ |
D | TODO | 2 iommu, wdt, mcbsp, gptimers
|
/drivers/ |
D | Makefile | 141 obj-$(CONFIG_IOMMU_SUPPORT) += iommu/
|
D | Kconfig | 145 source "drivers/iommu/Kconfig"
|
/drivers/parisc/ |
D | eisa.c | 312 eisa_dev.hba.iommu = ccio_get_iommu(dev); in eisa_probe()
|
D | dino.c | 956 dino_dev->hba.iommu = ccio_get_iommu(dev); in dino_probe()
|
D | ccio-dma.c | 1570 HBA_DATA(dev->dev.platform_data)->iommu = ioc; in ccio_probe()
|
D | lba_pci.c | 1447 lba_dev->hba.iommu = sba_get_iommu(dev); /* get iommu data */ in lba_driver_probe()
|