Home
last modified time | relevance | path

Searched refs:iommu (Results 1 – 22 of 22) sorted by relevance

/drivers/iommu/
Damd_iommu_init.c245 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 …]
Ddmar.c231 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 …]
Dintel_irq_remapping.c21 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 …]
Dintel-iommu.c403 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 …]
Damd_iommu.c182 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 …]
DMakefile1 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
Damd_iommu_proto.h29 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()
Damd_iommu_types.h360 #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);
Dexynos-iommu.c254 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()
Domap-iommu-debug.c376 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()
Dshmobile-iommu.c124 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()
Domap-iommu.h108 struct omap_iommu_arch_data *arch_data = dev->archdata.iommu; in dev_to_omap_iommu()
Domap-iommu.c1106 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()
Domap-iovmm.c356 new->iommu = obj; in alloc_iovm_area()
/drivers/vfio/
Dvfio_iommu_type1.c177 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/
DTODO2 iommu, wdt, mcbsp, gptimers
/drivers/
DMakefile141 obj-$(CONFIG_IOMMU_SUPPORT) += iommu/
DKconfig145 source "drivers/iommu/Kconfig"
/drivers/parisc/
Deisa.c312 eisa_dev.hba.iommu = ccio_get_iommu(dev); in eisa_probe()
Ddino.c956 dino_dev->hba.iommu = ccio_get_iommu(dev); in dino_probe()
Dccio-dma.c1570 HBA_DATA(dev->dev.platform_data)->iommu = ioc; in ccio_probe()
Dlba_pci.c1447 lba_dev->hba.iommu = sba_get_iommu(dev); /* get iommu data */ in lba_driver_probe()