| /linux/drivers/iommu/ |
| H A D | sun50i-iommu.c | 101 struct iommu_device iommu; member 125 struct sun50i_iommu *iommu; member 138 static u32 iommu_read(struct sun50i_iommu *iommu, u32 offset) in iommu_read() argument 140 return readl(iommu->base + offset); in iommu_read() 143 static void iommu_write(struct sun50i_iommu *iommu, u32 offset, u32 value) in iommu_write() argument 145 writel(value, iommu->base + offset); in iommu_write() 294 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_table_flush() local 298 dma_sync_single_for_device(iommu->dev, dma, size, DMA_TO_DEVICE); in sun50i_table_flush() 301 static void sun50i_iommu_zap_iova(struct sun50i_iommu *iommu, in sun50i_iommu_zap_iova() argument 307 iommu_write(iommu, IOMMU_TLB_IVLD_ADDR_REG, iova); in sun50i_iommu_zap_iova() [all …]
|
| H A D | rockchip-iommu.c | 17 #include <linux/iommu.h> 30 #include "iommu-pages.h" 119 struct iommu_device iommu; 121 struct iommu_domain *domain; /* domain to which iommu is attached */ 126 struct rk_iommu *iommu; 146 * The Rockchip rk3288 iommu uses a 2-level page table. 155 * Each iommu device has a MMU_DTE_ADDR register that contains the physical 349 static void rk_iommu_command(struct rk_iommu *iommu, u32 command) in rk_iommu_command() 353 for (i = 0; i < iommu->num_mmu; i++) in rk_iommu_command() 354 writel(command, iommu in rk_iommu_command() 117 struct iommu_device iommu; global() member 124 struct rk_iommu *iommu; global() member 347 rk_iommu_command(struct rk_iommu * iommu,u32 command) rk_iommu_command() argument 359 rk_iommu_zap_lines(struct rk_iommu * iommu,dma_addr_t iova_start,size_t size) rk_iommu_zap_lines() argument 376 rk_iommu_is_stall_active(struct rk_iommu * iommu) rk_iommu_is_stall_active() argument 388 rk_iommu_is_paging_enabled(struct rk_iommu * iommu) rk_iommu_is_paging_enabled() argument 400 rk_iommu_is_reset_done(struct rk_iommu * iommu) rk_iommu_is_reset_done() argument 411 rk_iommu_enable_stall(struct rk_iommu * iommu) rk_iommu_enable_stall() argument 436 rk_iommu_disable_stall(struct rk_iommu * iommu) rk_iommu_disable_stall() argument 457 rk_iommu_enable_paging(struct rk_iommu * iommu) rk_iommu_enable_paging() argument 478 rk_iommu_disable_paging(struct rk_iommu * iommu) rk_iommu_disable_paging() argument 499 rk_iommu_force_reset(struct rk_iommu * iommu) rk_iommu_force_reset() argument 535 log_iova(struct rk_iommu * iommu,int index,dma_addr_t iova) log_iova() argument 584 struct rk_iommu *iommu = dev_id; rk_iommu_irq() local 688 struct rk_iommu *iommu; rk_iommu_zap_iova() local 911 rk_iommu_disable(struct rk_iommu * iommu) rk_iommu_disable() argument 928 rk_iommu_enable(struct rk_iommu * iommu) rk_iommu_enable() argument 966 struct rk_iommu *iommu; rk_iommu_identity_attach() local 1011 struct rk_iommu *iommu; rk_iommu_attach_device() local 1065 struct rk_iommu *iommu; rk_iommu_domain_alloc_paging() local 1138 struct rk_iommu *iommu; rk_iommu_probe_device() local 1198 struct rk_iommu *iommu; rk_iommu_probe() local 1310 struct rk_iommu *iommu = platform_get_drvdata(pdev); rk_iommu_shutdown() local 1324 struct rk_iommu *iommu = dev_get_drvdata(dev); rk_iommu_suspend() local 1335 struct rk_iommu *iommu = dev_get_drvdata(dev); rk_iommu_resume() local [all...] |
| H A D | msm_iommu.c | 54 static int __enable_clocks(struct msm_iommu_dev *iommu) in __enable_clocks() argument 58 ret = clk_enable(iommu->pclk); in __enable_clocks() 62 if (iommu->clk) { in __enable_clocks() 63 ret = clk_enable(iommu->clk); in __enable_clocks() 65 clk_disable(iommu->pclk); in __enable_clocks() 71 static void __disable_clocks(struct msm_iommu_dev *iommu) in __disable_clocks() argument 73 if (iommu->clk) in __disable_clocks() 74 clk_disable(iommu->clk); in __disable_clocks() 75 clk_disable(iommu->pclk); in __disable_clocks() 120 struct msm_iommu_dev *iommu = NULL; in __flush_iotlb() local [all …]
|
| H A D | iommu-sysfs.c | 54 int iommu_device_sysfs_add(struct iommu_device *iommu, in iommu_device_sysfs_add() argument 62 iommu->dev = kzalloc_obj(*iommu->dev); 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() 73 ret = kobject_set_name_vargs(&iommu->dev->kobj, fmt, vargs); 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() [all …]
|
| /linux/drivers/iommu/amd/ |
| H A D | init.c | 19 #include <linux/amd-iommu.h> 25 #include <asm/iommu.h> 38 #include "../iommu-pages.h" 235 bool translation_pre_enabled(struct amd_iommu *iommu) in translation_pre_enabled() argument 237 return (iommu->flags & AMD_IOMMU_FLAG_TRANS_PRE_ENABLED); in translation_pre_enabled() 240 static void clear_translation_pre_enabled(struct amd_iommu *iommu) in clear_translation_pre_enabled() argument 242 iommu->flags &= ~AMD_IOMMU_FLAG_TRANS_PRE_ENABLED; in clear_translation_pre_enabled() 245 static void init_translation_status(struct amd_iommu *iommu) in init_translation_status() argument 249 ctrl = readq(iommu->mmio_base + MMIO_CONTROL_OFFSET); in init_translation_status() 251 iommu in init_translation_status() 270 struct amd_iommu *iommu; get_global_efr() local 305 early_iommu_features_init(struct amd_iommu * iommu,struct ivhd_header * h) early_iommu_features_init() argument 318 iommu_read_l1(struct amd_iommu * iommu,u16 l1,u8 address) iommu_read_l1() argument 327 iommu_write_l1(struct amd_iommu * iommu,u16 l1,u8 address,u32 val) iommu_write_l1() argument 334 iommu_read_l2(struct amd_iommu * iommu,u8 address) iommu_read_l2() argument 343 iommu_write_l2(struct amd_iommu * iommu,u8 address,u32 val) iommu_write_l2() argument 362 iommu_set_exclusion_range(struct amd_iommu * iommu) iommu_set_exclusion_range() argument 380 iommu_set_cwwb_range(struct amd_iommu * iommu) iommu_set_cwwb_range() argument 404 iommu_set_device_table(struct amd_iommu * iommu) iommu_set_device_table() argument 421 iommu_feature_set(struct amd_iommu * iommu,u64 val,u64 mask,u8 shift) iommu_feature_set() argument 433 iommu_feature_enable(struct amd_iommu * iommu,u8 bit) iommu_feature_enable() argument 438 iommu_feature_disable(struct amd_iommu * iommu,u8 bit) iommu_feature_disable() argument 444 iommu_enable(struct amd_iommu * iommu) iommu_enable() argument 449 iommu_disable(struct amd_iommu * iommu) iommu_disable() argument 492 iommu_unmap_mmio_space(struct amd_iommu * iommu) iommu_unmap_mmio_space() argument 744 alloc_command_buffer(struct amd_iommu * iommu) alloc_command_buffer() argument 755 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) amd_iommu_restart_log() argument 780 amd_iommu_restart_event_logging(struct amd_iommu * iommu) amd_iommu_restart_event_logging() argument 791 amd_iommu_restart_ga_log(struct amd_iommu * iommu) amd_iommu_restart_ga_log() argument 802 amd_iommu_reset_cmd_buffer(struct amd_iommu * iommu) amd_iommu_reset_cmd_buffer() argument 818 iommu_enable_command_buffer(struct amd_iommu * iommu) iommu_enable_command_buffer() argument 841 iommu_disable_command_buffer(struct amd_iommu * iommu) iommu_disable_command_buffer() argument 846 free_command_buffer(struct amd_iommu * iommu) free_command_buffer() argument 851 iommu_alloc_4k_pages(struct amd_iommu * iommu,gfp_t gfp,size_t size) iommu_alloc_4k_pages() argument 873 struct amd_iommu *iommu; alloc_event_buffer() local 887 struct amd_iommu *iommu; iommu_enable_event_buffer() local 917 iommu_disable_event_buffer(struct amd_iommu * iommu) iommu_disable_event_buffer() argument 922 free_event_buffer(struct amd_iommu * iommu) free_event_buffer() argument 927 free_ga_log(struct amd_iommu * iommu) free_ga_log() argument 936 iommu_ga_log_enable(struct amd_iommu * iommu) iommu_ga_log_enable() argument 971 iommu_init_ga_log(struct amd_iommu * iommu) iommu_init_ga_log() argument 993 alloc_cwwb_sem(struct amd_iommu * iommu) alloc_cwwb_sem() argument 1004 struct amd_iommu *iommu; remap_event_buffer() local 1018 remap_command_buffer(struct amd_iommu * iommu) remap_command_buffer() argument 1029 remap_or_alloc_cwwb_sem(struct amd_iommu * iommu) remap_or_alloc_cwwb_sem() argument 1051 alloc_iommu_buffers(struct amd_iommu * iommu) alloc_iommu_buffers() argument 1080 free_cwwb_sem(struct amd_iommu * iommu) free_cwwb_sem() argument 1085 unmap_cwwb_sem(struct amd_iommu * iommu) unmap_cwwb_sem() argument 1095 unmap_command_buffer(struct amd_iommu * iommu) unmap_command_buffer() argument 1100 unmap_event_buffer(struct amd_iommu * iommu) unmap_event_buffer() argument 1105 free_iommu_buffers(struct amd_iommu * iommu) free_iommu_buffers() argument 1118 iommu_enable_xt(struct amd_iommu * iommu) iommu_enable_xt() argument 1131 iommu_enable_gt(struct amd_iommu * iommu) iommu_enable_gt() argument 1156 __reuse_device_table(struct amd_iommu * iommu) __reuse_device_table() argument 1220 struct amd_iommu *iommu; reuse_device_table() local 1287 set_dev_entry_from_acpi_range(struct amd_iommu * iommu,u16 first,u16 last,u32 flags,u32 ext_flags) set_dev_entry_from_acpi_range() argument 1342 set_dev_entry_from_acpi(struct amd_iommu * iommu,u16 devid,u32 flags,u32 ext_flags) set_dev_entry_from_acpi() argument 1459 init_iommu_from_acpi(struct amd_iommu * iommu,struct ivhd_header * h) init_iommu_from_acpi() argument 1797 free_sysfs(struct amd_iommu * iommu) free_sysfs() argument 1805 free_iommu_one(struct amd_iommu * iommu) free_iommu_one() argument 1817 struct amd_iommu *iommu, *next; free_iommu_all() local 1832 amd_iommu_erratum_746_workaround(struct amd_iommu * iommu) amd_iommu_erratum_746_workaround() argument 1863 amd_iommu_ats_write_check_workaround(struct amd_iommu * iommu) amd_iommu_ats_write_check_workaround() argument 1889 init_iommu_one(struct amd_iommu * iommu,struct ivhd_header * h,struct acpi_table_header * ivrs_base) init_iommu_one() argument 1968 init_iommu_one_late(struct amd_iommu * iommu) init_iommu_one_late() argument 2037 struct amd_iommu *iommu; init_iommu_all() local 2082 init_iommu_perf_ctr(struct amd_iommu * iommu) init_iommu_perf_ctr() argument 2105 struct amd_iommu *iommu = dev_to_amd_iommu(dev); amd_iommu_show_cap() local 2139 late_iommu_features_init(struct amd_iommu * iommu) late_iommu_features_init() argument 2169 iommu_init_pci(struct amd_iommu * iommu) iommu_init_pci() argument 2322 struct amd_iommu *iommu; amd_iommu_init_pci() local 2371 iommu_setup_msi(struct amd_iommu * iommu) iommu_setup_msi() argument 2451 struct amd_iommu *iommu = irqd->chip_data; intcapxt_unmask_irq() local 2466 struct amd_iommu *iommu = irqd->chip_data; intcapxt_mask_irq() local 2531 __iommu_setup_intcapxt(struct amd_iommu * iommu,const char * devname,int hwirq,irq_handler_t thread_fn) __iommu_setup_intcapxt() argument 2565 iommu_setup_intcapxt(struct amd_iommu * iommu) iommu_setup_intcapxt() argument 2596 iommu_init_irq(struct amd_iommu * iommu) iommu_init_irq() argument 2774 iommu_init_flags(struct amd_iommu * iommu) iommu_init_flags() argument 2805 iommu_apply_resume_quirks(struct amd_iommu * iommu) iommu_apply_resume_quirks() argument 2848 iommu_enable_ga(struct amd_iommu * iommu) iommu_enable_ga() argument 2864 iommu_disable_irtcachedis(struct amd_iommu * iommu) iommu_disable_irtcachedis() argument 2869 iommu_enable_irtcachedis(struct amd_iommu * iommu) iommu_enable_irtcachedis() argument 2891 iommu_enable_2k_int(struct amd_iommu * iommu) iommu_enable_2k_int() argument 2902 early_enable_iommu(struct amd_iommu * iommu) early_enable_iommu() argument 2928 struct amd_iommu *iommu; early_enable_iommus() local 2983 struct amd_iommu *iommu; enable_iommus_ppr() local 2996 struct amd_iommu *iommu; enable_iommus_vapic() local 3056 struct amd_iommu *iommu; disable_iommus() local 3074 struct amd_iommu *iommu; amd_iommu_resume() local 3314 struct amd_iommu *iommu; amd_iommu_enable_interrupts() local 3521 struct amd_iommu *iommu; state_next() local 3934 struct amd_iommu *iommu; get_amd_iommu() local 3951 struct amd_iommu *iommu = get_amd_iommu(idx); amd_iommu_pc_get_max_banks() local 3966 struct amd_iommu *iommu = get_amd_iommu(idx); amd_iommu_pc_get_max_counters() local 3974 iommu_pc_get_set_reg(struct amd_iommu * iommu,u8 bank,u8 cntr,u8 fxn,u64 * value,bool is_write) iommu_pc_get_set_reg() argument 4012 amd_iommu_pc_get_reg(struct amd_iommu * iommu,u8 bank,u8 cntr,u8 fxn,u64 * value) amd_iommu_pc_get_reg() argument 4020 amd_iommu_pc_set_reg(struct amd_iommu * iommu,u8 bank,u8 cntr,u8 fxn,u64 * value) amd_iommu_pc_set_reg() argument 4086 struct amd_iommu *iommu; amd_iommu_snp_disable() local [all...] |
| H A D | ppr.c | 20 int __init amd_iommu_alloc_ppr_log(struct amd_iommu *iommu) in amd_iommu_alloc_ppr_log() argument 22 iommu->ppr_log = iommu_alloc_4k_pages(iommu, GFP_KERNEL | __GFP_ZERO, in amd_iommu_alloc_ppr_log() 24 return iommu->ppr_log ? 0 : -ENOMEM; in amd_iommu_alloc_ppr_log() 27 void amd_iommu_enable_ppr_log(struct amd_iommu *iommu) in amd_iommu_enable_ppr_log() argument 31 if (iommu->ppr_log == NULL) in amd_iommu_enable_ppr_log() 34 iommu_feature_enable(iommu, CONTROL_PPR_EN); in amd_iommu_enable_ppr_log() 36 entry = iommu_virt_to_phys(iommu->ppr_log); in amd_iommu_enable_ppr_log() 40 memcpy_toio(iommu->mmio_base + MMIO_PPR_LOG_OFFSET, in amd_iommu_enable_ppr_log() 44 writel(0x00, iommu->mmio_base + MMIO_PPR_HEAD_OFFSET); in amd_iommu_enable_ppr_log() 45 writel(0x00, iommu->mmio_base + MMIO_PPR_TAIL_OFFSET); in amd_iommu_enable_ppr_log() [all …]
|
| H A D | iommu.c | 23 #include <linux/iommu-helper.h> 25 #include <linux/amd-iommu.h> 39 #include <asm/iommu.h> 43 #include <linux/generic_pt/iommu.h> 48 #include "../iommu-pages.h" 75 static void set_dte_entry(struct amd_iommu *iommu, 84 static void iommu_flush_dte_sync(struct amd_iommu *iommu, u16 devid); 86 static struct iommu_dev_data *find_dev_data(struct amd_iommu *iommu, u16 devid); 91 static void clone_aliases(struct amd_iommu *iommu, struct device *dev); 93 static int iommu_completion_wait(struct amd_iommu *iommu); 146 update_dte256(struct amd_iommu * iommu,struct iommu_dev_data * dev_data,struct dev_table_entry * new) update_dte256() argument 212 amd_iommu_update_dte(struct amd_iommu * iommu,struct iommu_dev_data * dev_data,struct dev_table_entry * new) amd_iommu_update_dte() argument 222 get_dte256(struct amd_iommu * iommu,struct iommu_dev_data * dev_data,struct dev_table_entry * dte) get_dte256() argument 312 get_dev_table(struct amd_iommu * iommu) get_dev_table() argument 342 amd_iommu_set_rlookup_table(struct amd_iommu * iommu,u16 devid) amd_iommu_set_rlookup_table() argument 374 alloc_dev_data(struct amd_iommu * iommu,u16 devid) alloc_dev_data() argument 392 search_dev_data(struct amd_iommu * iommu,u16 devid) search_dev_data() argument 413 struct amd_iommu *iommu; clone_alias() local 449 clone_aliases(struct amd_iommu * iommu,struct device * dev) clone_aliases() argument 467 setup_aliases(struct amd_iommu * iommu,struct device * dev) setup_aliases() argument 489 find_dev_data(struct amd_iommu * iommu,u16 devid) find_dev_data() argument 678 struct amd_iommu *iommu; check_device() local 701 iommu_init_device(struct amd_iommu * iommu,struct device * dev) iommu_init_device() argument 741 iommu_ignore_device(struct amd_iommu * iommu,struct device * dev) iommu_ignore_device() argument 765 dump_dte_entry(struct amd_iommu * iommu,u16 devid) dump_dte_entry() argument 786 amd_iommu_report_rmp_hw_error(struct amd_iommu * iommu,volatile u32 * event) amd_iommu_report_rmp_hw_error() argument 818 amd_iommu_report_rmp_fault(struct amd_iommu * iommu,volatile u32 * event) amd_iommu_report_rmp_fault() argument 857 amd_iommu_report_page_fault(struct amd_iommu * iommu,u16 devid,u16 domain_id,u64 address,int flags) amd_iommu_report_page_fault() argument 908 iommu_print_event(struct amd_iommu * iommu,void * __evt) iommu_print_event() argument 1006 iommu_poll_events(struct amd_iommu * iommu) iommu_poll_events() argument 1042 iommu_poll_ga_log(struct amd_iommu * iommu) iommu_poll_ga_log() argument 1085 amd_iommu_set_pci_msi_domain(struct device * dev,struct amd_iommu * iommu) amd_iommu_set_pci_msi_domain() argument 1096 amd_iommu_set_pci_msi_domain(struct device * dev,struct amd_iommu * iommu) amd_iommu_set_pci_msi_domain() argument 1104 struct amd_iommu *iommu = (struct amd_iommu *) data; amd_iommu_handle_irq() local 1182 dump_command_buffer(struct amd_iommu * iommu) dump_command_buffer() argument 1201 wait_on_sem(struct amd_iommu * iommu,u64 data) wait_on_sem() argument 1230 copy_cmd_to_buffer(struct amd_iommu * iommu,struct iommu_cmd * cmd) copy_cmd_to_buffer() argument 1249 build_completion_wait(struct iommu_cmd * cmd,struct amd_iommu * iommu,u64 data) build_completion_wait() argument 1386 __iommu_queue_command_sync(struct amd_iommu * iommu,struct iommu_cmd * cmd,bool sync) __iommu_queue_command_sync() argument 1423 iommu_queue_command_sync(struct amd_iommu * iommu,struct iommu_cmd * cmd,bool sync) iommu_queue_command_sync() argument 1437 iommu_queue_command(struct amd_iommu * iommu,struct iommu_cmd * cmd) iommu_queue_command() argument 1442 get_cmdsem_val(struct amd_iommu * iommu) get_cmdsem_val() argument 1452 iommu_completion_wait(struct amd_iommu * iommu) iommu_completion_wait() argument 1493 iommu_flush_dte(struct amd_iommu * iommu,u16 devid) iommu_flush_dte() argument 1502 iommu_flush_dte_sync(struct amd_iommu * iommu,u16 devid) iommu_flush_dte_sync() argument 1511 amd_iommu_flush_dte_all(struct amd_iommu * iommu) amd_iommu_flush_dte_all() argument 1526 amd_iommu_flush_tlb_all(struct amd_iommu * iommu) amd_iommu_flush_tlb_all() argument 1541 amd_iommu_flush_tlb_domid(struct amd_iommu * iommu,u32 dom_id) amd_iommu_flush_tlb_domid() argument 1560 struct amd_iommu *iommu = container_of(aviommu->core.iommu_dev, iommu_flush_pages_v1_hdom_ids() local 1578 amd_iommu_flush_all(struct amd_iommu * iommu) amd_iommu_flush_all() argument 1588 iommu_flush_irt(struct amd_iommu * iommu,u16 devid) iommu_flush_irt() argument 1597 amd_iommu_flush_irt_all(struct amd_iommu * iommu) amd_iommu_flush_irt_all() argument 1611 amd_iommu_flush_all_caches(struct amd_iommu * iommu) amd_iommu_flush_all_caches() argument 1628 struct amd_iommu *iommu = get_amd_iommu_from_dev_data(dev_data); device_flush_iotlb() local 1640 struct amd_iommu *iommu = data; device_flush_dte_alias() local 1650 struct amd_iommu *iommu = get_amd_iommu_from_dev_data(dev_data); device_flush_dte() local 1693 struct amd_iommu *iommu = get_amd_iommu_from_dev(dev_data->dev); domain_flush_pages_v2() local 1835 struct amd_iommu *iommu = get_amd_iommu_from_dev(dev_data->dev); amd_iommu_dev_flush_pasid_pages() local 1857 struct amd_iommu *iommu; amd_iommu_complete_ppr() local 1963 setup_gcr3_table(struct gcr3_tbl_info * gcr3_info,struct amd_iommu * iommu,int pasids) setup_gcr3_table() argument 2160 set_dte_entry(struct amd_iommu * iommu,struct iommu_dev_data * dev_data,phys_addr_t top_paddr,unsigned int top_level) set_dte_entry() argument 2198 clear_dte_entry(struct amd_iommu * iommu,struct iommu_dev_data * dev_data) clear_dte_entry() argument 2209 struct amd_iommu *iommu = get_amd_iommu_from_dev(dev_data->dev); dev_update_dte() local 2224 struct amd_iommu *iommu = get_amd_iommu_from_dev_data(dev_data); init_gcr3_table() local 2271 pdom_attach_iommu(struct amd_iommu * iommu,struct protection_domain * pdom) pdom_attach_iommu() argument 2308 pdom_detach_iommu(struct amd_iommu * iommu,struct protection_domain * pdom) pdom_detach_iommu() argument 2339 struct amd_iommu *iommu = get_amd_iommu_from_dev_data(dev_data); attach_device() local 2401 struct amd_iommu *iommu = get_amd_iommu_from_dev_data(dev_data); detach_device() local 2451 struct amd_iommu *iommu; amd_iommu_probe_device() local 2572 amd_iommu_hd_support(struct amd_iommu * iommu) amd_iommu_hd_support() argument 2602 struct amd_iommu *iommu = rlookup_amd_iommu(dev_data->dev); amd_iommu_change_top() local 2822 struct amd_iommu *iommu = get_amd_iommu_from_dev(dev); amd_iommu_domain_alloc_paging_flags() local 2953 struct amd_iommu *iommu = get_amd_iommu_from_dev(dev); amd_iommu_attach_device() local 3001 struct amd_iommu *iommu = get_amd_iommu_from_dev(dev); amd_iommu_capable() local 3025 struct amd_iommu *iommu; amd_iommu_set_dirty_tracking() local 3064 struct amd_iommu *iommu; amd_iommu_get_resv_regions() local 3196 struct amd_iommu *iommu = data; iommu_flush_dev_irt() local 3203 iommu_flush_irt_and_complete(struct amd_iommu * iommu,u16 devid) iommu_flush_irt_and_complete() argument 3248 set_dte_irq_entry(struct amd_iommu * iommu,u16 devid,struct irq_remap_table * table) set_dte_irq_entry() argument 3270 get_irq_table(struct amd_iommu * iommu,u16 devid) get_irq_table() argument 3307 set_remap_table_entry(struct amd_iommu * iommu,u16 devid,struct irq_remap_table * table) set_remap_table_entry() argument 3322 struct amd_iommu *iommu = rlookup_amd_iommu(&pdev->dev); set_remap_table_entry_alias() local 3343 alloc_irq_table(struct amd_iommu * iommu,u16 devid,struct pci_dev * pdev,unsigned int max_irqs) alloc_irq_table() argument 3411 alloc_irq_index(struct amd_iommu * iommu,u16 devid,int count,bool align,struct pci_dev * pdev,unsigned long max_irqs) alloc_irq_index() argument 3458 __modify_irte_ga(struct amd_iommu * iommu,u16 devid,int index,struct irte_ga * irte) __modify_irte_ga() argument 3489 modify_irte_ga(struct amd_iommu * iommu,u16 devid,int index,struct irte_ga * irte) modify_irte_ga() argument 3503 modify_irte(struct amd_iommu * iommu,u16 devid,int index,union irte * irte) modify_irte() argument 3522 free_irte(struct amd_iommu * iommu,u16 devid,int index) free_irte() argument 3568 irte_activate(struct amd_iommu * iommu,void * entry,u16 devid,u16 index) irte_activate() argument 3576 irte_ga_activate(struct amd_iommu * iommu,void * entry,u16 devid,u16 index) irte_ga_activate() argument 3584 irte_deactivate(struct amd_iommu * iommu,void * entry,u16 devid,u16 index) irte_deactivate() argument 3592 irte_ga_deactivate(struct amd_iommu * iommu,void * entry,u16 devid,u16 index) irte_ga_deactivate() argument 3600 irte_set_affinity(struct amd_iommu * iommu,void * entry,u16 devid,u16 index,u8 vector,u32 dest_apicid) irte_set_affinity() argument 3610 irte_ga_set_affinity(struct amd_iommu * iommu,void * entry,u16 devid,u16 index,u8 vector,u32 dest_apicid) irte_ga_set_affinity() argument 3717 struct amd_iommu *iommu = data->iommu; irq_remapping_prepare_irte() local 3768 struct amd_iommu *iommu; irq_remapping_alloc() local 3909 struct amd_iommu *iommu = data->iommu; irq_remapping_activate() local 3926 struct amd_iommu *iommu = data->iommu; irq_remapping_deactivate() local 3936 struct amd_iommu *iommu; irq_remapping_select() local 4122 amd_ir_update_irte(struct irq_data * irqd,struct amd_iommu * iommu,struct amd_ir_data * ir_data,struct irq_2_irte * irte_info,struct irq_cfg * cfg) amd_ir_update_irte() argument 4144 struct amd_iommu *iommu = ir_data->iommu; amd_ir_set_affinity() local 4188 amd_iommu_create_irq_domain(struct amd_iommu * iommu) amd_iommu_create_irq_domain() argument [all...] |
| H A D | debugfs.c | 28 struct amd_iommu *iommu = m->private; in iommu_mmio_write() local 29 int ret, dbg_mmio_offset = iommu->dbg_mmio_offset = -1; in iommu_mmio_write() 39 iommu->mmio_phys_end - sizeof(u64)) in iommu_mmio_write() 42 iommu->dbg_mmio_offset = dbg_mmio_offset; in iommu_mmio_write() 48 struct amd_iommu *iommu = m->private; in iommu_mmio_show() local 50 int dbg_mmio_offset = iommu->dbg_mmio_offset; in iommu_mmio_show() 53 iommu->mmio_phys_end - sizeof(u64)) { in iommu_mmio_show() 58 value = readq(iommu->mmio_base + dbg_mmio_offset); in iommu_mmio_show() 69 struct amd_iommu *iommu = m->private; in iommu_capability_write() local 70 int ret, dbg_cap_offset = iommu->dbg_cap_offset = -1; in iommu_capability_write() [all …]
|
| H A D | amd_iommu.h | 10 #include <linux/iommu.h> 21 void amd_iommu_restart_log(struct amd_iommu *iommu, const char *evt_type, 24 void amd_iommu_restart_event_logging(struct amd_iommu *iommu); 25 void amd_iommu_restart_ga_log(struct amd_iommu *iommu); 26 void amd_iommu_restart_ppr_log(struct amd_iommu *iommu); 27 void amd_iommu_set_rlookup_table(struct amd_iommu *iommu, u16 devid); 28 void iommu_feature_enable(struct amd_iommu *iommu, u8 bit); 29 void *__init iommu_alloc_4k_pages(struct amd_iommu *iommu, 67 int amd_iommu_iopf_init(struct amd_iommu *iommu); 68 void amd_iommu_iopf_uninit(struct amd_iommu *iommu); 101 amd_iommu_create_irq_domain(struct amd_iommu * iommu) amd_iommu_create_irq_domain() argument 207 struct amd_iommu *iommu = get_amd_iommu_from_dev(dev_data->dev); amd_iommu_make_clear_dte() local [all...] |
| /linux/arch/sparc/kernel/ |
| H A D | iommu.c | 52 struct iommu *iommu = container_of(iommu_map_table, struct iommu, tbl); in iommu_flushall() local 53 if (iommu->iommu_flushinv) { in iommu_flushall() 54 iommu_write(iommu->iommu_flushinv, ~(u64)0); in iommu_flushall() 59 tag = iommu->iommu_tags; in iommu_flushall() 66 (void) iommu_read(iommu->write_complete_reg); in iommu_flushall() 80 #define IOPTE_IS_DUMMY(iommu, iopte) \ argument 81 ((iopte_val(*iopte) & IOPTE_PAGE) == (iommu)->dummy_page_pa) 83 static inline void iopte_make_dummy(struct iommu *iommu, iopte_t *iopte) in iopte_make_dummy() argument 88 val |= iommu->dummy_page_pa; in iopte_make_dummy() 93 int iommu_table_init(struct iommu *iommu, int tsbsize, in iommu_table_init() argument [all …]
|
| H A D | iommu-common.c | 19 static inline bool need_flush(struct iommu_map_table *iommu) in need_flush() argument 21 return ((iommu->flags & IOMMU_NEED_FLUSH) != 0); in need_flush() 24 static inline void set_flush(struct iommu_map_table *iommu) in set_flush() argument 26 iommu->flags |= IOMMU_NEED_FLUSH; in set_flush() 29 static inline void clear_flush(struct iommu_map_table *iommu) in clear_flush() argument 31 iommu->flags &= ~IOMMU_NEED_FLUSH; in clear_flush() 52 void iommu_tbl_pool_init(struct iommu_map_table *iommu, in iommu_tbl_pool_init() argument 60 struct iommu_pool *p = &(iommu->large_pool); in iommu_tbl_pool_init() 64 iommu->nr_pools = IOMMU_NR_POOLS; in iommu_tbl_pool_init() 66 iommu->nr_pools = npools; in iommu_tbl_pool_init() [all …]
|
| H A D | sbus.c | 63 struct iommu *iommu = dev->archdata.iommu; in sbus_set_sbus64() local 78 cfg_reg = iommu->write_complete_reg; in sbus_set_sbus64() 213 struct iommu *iommu = op->dev.archdata.iommu; in sbus_build_irq() local 214 unsigned long reg_base = iommu->write_complete_reg - 0x2000UL; in sbus_build_irq() 275 struct iommu *iommu = op->dev.archdata.iommu; in sysio_ue_handler() local 276 unsigned long reg_base = iommu->write_complete_reg - 0x2000UL; in sysio_ue_handler() 349 struct iommu *iommu = op->dev.archdata.iommu; in sysio_ce_handler() local 350 unsigned long reg_base = iommu->write_complete_reg - 0x2000UL; in sysio_ce_handler() 428 struct iommu *iommu = op->dev.archdata.iommu; in sysio_sbus_error_handler() local 433 reg_base = iommu->write_complete_reg - 0x2000UL; in sysio_sbus_error_handler() [all …]
|
| H A D | pci_sun4v.c | 78 static inline bool iommu_use_atu(struct iommu *iommu, u64 mask) in iommu_use_atu() argument 80 return iommu->atu && mask > DMA_BIT_MASK(32); in iommu_use_atu() 102 if (!iommu_use_atu(pbm->iommu, mask)) { in iommu_batch_flush() 119 iotsb_num = pbm->iommu->atu->iotsb->iotsb_num; in iommu_batch_flush() 188 struct iommu *iommu; in dma_4v_alloc_coherent() local 213 iommu = dev->archdata.iommu; in dma_4v_alloc_coherent() 215 if (!iommu_use_atu(iommu, mask)) in dma_4v_alloc_coherent() 216 tbl = &iommu->tbl; in dma_4v_alloc_coherent() 218 tbl = &iommu->atu->tbl; in dma_4v_alloc_coherent() 327 struct iommu *iommu; in dma_4v_free_coherent() local [all …]
|
| /linux/drivers/iommu/intel/ |
| H A D | iommu.c | 27 #include "iommu.h" 28 #include "../dma-iommu.h" 30 #include "../iommu-pages.h" 53 #define rwbf_required(iommu) (rwbf_quirk || cap_rwbf((iommu)->cap)) argument 120 * released by the iommu subsystem after being returned. The caller 124 struct device *device_rbtree_find(struct intel_iommu *iommu, u16 rid) in device_rbtree_find() argument 130 spin_lock_irqsave(&iommu->device_rbtree_lock, flags); in device_rbtree_find() 131 node = rb_find(&rid, &iommu->device_rbtree, device_rid_cmp_key); in device_rbtree_find() 134 spin_unlock_irqrestore(&iommu in device_rbtree_find() 139 device_rbtree_insert(struct intel_iommu * iommu,struct device_domain_info * info) device_rbtree_insert() argument 156 struct intel_iommu *iommu = info->iommu; device_rbtree_remove() local 185 struct intel_iommu *iommu; /* the corresponding iommu */ global() member 214 translation_pre_enabled(struct intel_iommu * iommu) translation_pre_enabled() argument 219 clear_translation_pre_enabled(struct intel_iommu * iommu) clear_translation_pre_enabled() argument 224 init_translation_status(struct intel_iommu * iommu) init_translation_status() argument 285 __iommu_calculate_sagaw(struct intel_iommu * iommu) __iommu_calculate_sagaw() argument 303 __iommu_calculate_agaw(struct intel_iommu * iommu,int max_gaw) __iommu_calculate_agaw() argument 320 iommu_calculate_max_sagaw(struct intel_iommu * iommu) iommu_calculate_max_sagaw() argument 330 iommu_calculate_agaw(struct intel_iommu * iommu) iommu_calculate_agaw() argument 335 iommu_paging_structure_coherency(struct intel_iommu * iommu) iommu_paging_structure_coherency() argument 341 iommu_context_addr(struct intel_iommu * iommu,u8 bus,u8 devfn,int alloc) iommu_context_addr() argument 440 iommu_is_dummy(struct intel_iommu * iommu,struct device * dev) iommu_is_dummy() argument 461 struct intel_iommu *iommu; device_lookup_iommu() local 527 free_context_table(struct intel_iommu * iommu) free_context_table() argument 553 pgtable_walk(struct intel_iommu * iommu,unsigned long pfn,u8 bus,u8 devfn,struct dma_pte * parent,int level) pgtable_walk() argument 578 dmar_fault_dump_ptes(struct intel_iommu * iommu,u16 source_id,unsigned long long addr,u32 pasid) dmar_fault_dump_ptes() argument 672 iommu_alloc_root_entry(struct intel_iommu * iommu) iommu_alloc_root_entry() argument 689 iommu_set_root_entry(struct intel_iommu * iommu) iommu_set_root_entry() argument 723 iommu_flush_write_buffer(struct intel_iommu * iommu) iommu_flush_write_buffer() argument 742 __iommu_flush_context(struct intel_iommu * iommu,u16 did,u16 source_id,u8 function_mask,u64 type) __iommu_flush_context() argument 777 __iommu_flush_iotlb(struct intel_iommu * iommu,u16 did,u64 addr,unsigned int size_order,u64 type) __iommu_flush_iotlb() argument 829 domain_lookup_dev_info(struct dmar_domain * domain,struct intel_iommu * iommu,u8 bus,u8 devfn) domain_lookup_dev_info() argument 925 iommu_disable_protect_mem_regions(struct intel_iommu * iommu) iommu_disable_protect_mem_regions() argument 945 iommu_enable_translation(struct intel_iommu * iommu) iommu_enable_translation() argument 961 iommu_disable_translation(struct intel_iommu * iommu) iommu_disable_translation() argument 981 disable_dmar_iommu(struct intel_iommu * iommu) disable_dmar_iommu() argument 994 free_dmar_iommu(struct intel_iommu * iommu) free_dmar_iommu() argument 1012 first_level_by_default(struct intel_iommu * iommu) first_level_by_default() argument 1025 domain_attach_iommu(struct dmar_domain * domain,struct intel_iommu * iommu) domain_attach_iommu() argument 1071 domain_detach_iommu(struct dmar_domain * domain,struct intel_iommu * iommu) domain_detach_iommu() argument 1096 copied_context_tear_down(struct intel_iommu * iommu,struct context_entry * context,u8 bus,u8 devfn) copied_context_tear_down() argument 1128 context_present_cache_flush(struct intel_iommu * iommu,u16 did,u8 bus,u8 devfn) context_present_cache_flush() argument 1143 domain_context_mapping_one(struct dmar_domain * domain,struct intel_iommu * iommu,u8 bus,u8 devfn) domain_context_mapping_one() argument 1201 struct intel_iommu *iommu = info->iommu; domain_context_mapping_cb() local 1212 struct intel_iommu *iommu = info->iommu; domain_context_mapping() local 1231 struct intel_iommu *iommu = info->iommu; domain_context_clear_one() local 1251 __domain_setup_first_level(struct intel_iommu * iommu,struct device * dev,ioasid_t pasid,u16 did,phys_addr_t fsptptr,int flags,struct iommu_domain * old) __domain_setup_first_level() argument 1261 domain_setup_second_level(struct intel_iommu * iommu,struct dmar_domain * domain,struct device * dev,ioasid_t pasid,struct iommu_domain * old) domain_setup_second_level() argument 1272 domain_setup_passthrough(struct intel_iommu * iommu,struct device * dev,ioasid_t pasid,struct iommu_domain * old) domain_setup_passthrough() argument 1282 domain_setup_first_level(struct intel_iommu * iommu,struct dmar_domain * domain,struct device * dev,u32 pasid,struct iommu_domain * old) domain_setup_first_level() argument 1313 struct intel_iommu *iommu = info->iommu; dmar_domain_attach_device() local 1387 struct intel_iommu *iommu = info->iommu; device_def_domain_type() local 1406 intel_iommu_init_qi(struct intel_iommu * iommu) intel_iommu_init_qi() argument 1441 copy_context_table(struct intel_iommu * iommu,struct root_entry * old_re,struct context_entry ** tbl,int bus,bool ext) copy_context_table() argument 1526 copy_translation_tables(struct intel_iommu * iommu) copy_translation_tables() argument 1614 struct intel_iommu *iommu; init_dmars() local 1781 struct intel_iommu *iommu = NULL; init_iommu_hw() local 1815 struct intel_iommu *iommu; iommu_flush_all() local 1828 struct intel_iommu *iommu = NULL; iommu_suspend() local 1855 struct intel_iommu *iommu = NULL; iommu_resume() local 2108 struct intel_iommu *iommu = dmaru->iommu; intel_iommu_add() local 2161 struct intel_iommu *iommu = dmaru->iommu; dmar_iommu_hotplug() local 2224 dmar_ats_supported(struct pci_dev * dev,struct intel_iommu * iommu) dmar_ats_supported() argument 2353 struct intel_iommu *iommu = NULL; intel_disable_iommus() local 2363 struct intel_iommu *iommu = NULL; intel_iommu_shutdown() local 2393 struct intel_iommu *iommu = dev_to_intel_iommu(dev); version_show() local 2403 struct intel_iommu *iommu = dev_to_intel_iommu(dev); address_show() local 2411 struct intel_iommu *iommu = dev_to_intel_iommu(dev); cap_show() local 2419 struct intel_iommu *iommu = dev_to_intel_iommu(dev); ecap_show() local 2427 struct intel_iommu *iommu = dev_to_intel_iommu(dev); domains_supported_show() local 2435 struct intel_iommu *iommu = dev_to_intel_iommu(dev); domains_used_show() local 2556 struct intel_iommu *iommu; intel_iommu_init() local 2723 struct intel_iommu *iommu = info->iommu; device_block_translation() local 2798 compute_vasz_lg2_fs(struct intel_iommu * iommu,unsigned int * top_level) compute_vasz_lg2_fs() argument 2822 intel_iommu_domain_alloc_first_stage(struct device * dev,struct intel_iommu * iommu,u32 flags) intel_iommu_domain_alloc_first_stage() argument 2872 compute_vasz_lg2_ss(struct intel_iommu * iommu,unsigned int * top_level) compute_vasz_lg2_ss() argument 2904 intel_iommu_domain_alloc_second_stage(struct device * dev,struct intel_iommu * iommu,u32 flags) intel_iommu_domain_alloc_second_stage() argument 2983 struct intel_iommu *iommu = info->iommu; intel_iommu_domain_alloc_paging_flags() local 3014 paging_domain_compatible_first_stage(struct dmar_domain * dmar_domain,struct intel_iommu * iommu) paging_domain_compatible_first_stage() argument 3048 paging_domain_compatible_second_stage(struct dmar_domain * dmar_domain,struct intel_iommu * iommu) paging_domain_compatible_second_stage() argument 3104 struct intel_iommu *iommu = info->iommu; paging_domain_compatible() local 3233 struct intel_iommu *iommu; intel_iommu_probe_device() local 3327 struct intel_iommu *iommu = info->iommu; intel_iommu_probe_finalize() local 3356 struct intel_iommu *iommu = info->iommu; intel_iommu_release_device() local 3449 struct intel_iommu *iommu = info->iommu; intel_iommu_enable_iopf() local 3474 struct intel_iommu *iommu = info->iommu; intel_iommu_disable_iopf() local 3526 struct intel_iommu *iommu = info->iommu; domain_remove_dev_pasid() local 3576 struct intel_iommu *iommu = info->iommu; domain_add_dev_pasid() local 3613 struct intel_iommu *iommu = info->iommu; intel_iommu_set_dev_pasid() local 3667 struct intel_iommu *iommu = info->iommu; intel_iommu_hw_info() local 3776 struct intel_iommu *iommu = info->iommu; context_setup_pass_through() local 3834 struct intel_iommu *iommu = info->iommu; identity_domain_attach_dev() local 3863 struct intel_iommu *iommu = info->iommu; identity_domain_set_dev_pasid() local 4185 ecmd_submit_sync(struct intel_iommu * iommu,u8 ecmd,u64 oa,u64 ob) ecmd_submit_sync() 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) in dmar_free_drhd() 463 free_iommu(dmaru->iommu); in dmar_free_drhd() 502 drhd->iommu->node = node; in dmar_parse_one_rhsa() 939 x86_init.iommu.iommu_init = intel_iommu_init; in detect_intel_iommu() 950 static void unmap_iommu(struct intel_iommu *iommu) in unmap_iommu() argument 952 iounmap(iommu in unmap_iommu() 964 map_iommu(struct intel_iommu * iommu,struct dmar_drhd_unit * drhd) map_iommu() argument 1038 struct intel_iommu *iommu; alloc_iommu() local 1168 free_iommu(struct intel_iommu * iommu) free_iommu() argument 1240 qi_dump_fault(struct intel_iommu * iommu,u32 fault) qi_dump_fault() argument 1271 qi_check_fault(struct intel_iommu * iommu,int index,int wait_index) qi_check_fault() argument 1368 qi_submit_sync(struct intel_iommu * iommu,struct qi_desc * desc,unsigned int count,unsigned long options) qi_submit_sync() argument 1499 qi_global_iec(struct intel_iommu * iommu) qi_global_iec() argument 1512 qi_flush_context(struct intel_iommu * iommu,u16 did,u16 sid,u8 fm,u64 type) qi_flush_context() argument 1526 qi_flush_iotlb(struct intel_iommu * iommu,u16 did,u64 addr,unsigned int size_order,u64 type) qi_flush_iotlb() argument 1535 qi_flush_dev_iotlb(struct intel_iommu * iommu,u16 sid,u16 pfsid,u16 qdep,u64 addr,unsigned mask) qi_flush_dev_iotlb() argument 1554 qi_flush_piotlb_all(struct intel_iommu * iommu,u16 did,u32 pasid) qi_flush_piotlb_all() argument 1563 qi_flush_dev_iotlb_pasid(struct intel_iommu * iommu,u16 sid,u16 pfsid,u32 pasid,u16 qdep,u64 addr,unsigned int size_order) qi_flush_dev_iotlb_pasid() argument 1583 qi_flush_pasid_cache(struct intel_iommu * iommu,u16 did,u64 granu,u32 pasid) qi_flush_pasid_cache() argument 1596 dmar_disable_qi(struct intel_iommu * iommu) dmar_disable_qi() argument 1631 __dmar_enable_qi(struct intel_iommu * iommu) __dmar_enable_qi() argument 1669 dmar_enable_qi(struct intel_iommu * iommu) dmar_enable_qi() argument 1834 dmar_msi_reg(struct intel_iommu * iommu,int irq) dmar_msi_reg() argument 1848 struct intel_iommu *iommu = irq_data_get_irq_handler_data(data); dmar_msi_unmask() local 1862 struct intel_iommu *iommu = irq_data_get_irq_handler_data(data); dmar_msi_mask() local 1876 struct intel_iommu *iommu = irq_get_handler_data(irq); dmar_msi_write() local 1887 dmar_fault_do_one(struct intel_iommu * iommu,int type,u8 fault_reason,u32 pasid,u16 source_id,unsigned long long addr) dmar_fault_do_one() argument 1926 struct intel_iommu *iommu = dev_id; dmar_fault() local 2003 dmar_set_interrupt(struct intel_iommu * iommu) dmar_set_interrupt() argument 2030 struct intel_iommu *iommu; enable_drhd_fault_handling() local 2065 dmar_reenable_qi(struct intel_iommu * iommu) dmar_reenable_qi() argument [all...] |
| H A D | cache.c | 24 struct intel_iommu *iommu, struct device *dev, in cache_tage_match() argument 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() 70 if (cache_tage_match(temp, did, iommu, dev, pasid, type)) { 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 104 if (cache_tage_match(tag, did, iommu, dev, pasid, type)) { in cache_tag_unassign() 202 struct intel_iommu *iommu = info->iommu; in domain_get_id_for_dev() local [all …]
|
| H A D | perf.c | 18 bool dmar_latency_enabled(struct intel_iommu *iommu, enum latency_type type) in dmar_latency_enabled() argument 20 struct latency_statistic *lstat = iommu->perf_statistic; in dmar_latency_enabled() 25 int dmar_latency_enable(struct intel_iommu *iommu, enum latency_type type) in dmar_latency_enable() argument 31 if (dmar_latency_enabled(iommu, type)) in dmar_latency_enable() 35 if (!iommu->perf_statistic) { in dmar_latency_enable() 36 iommu->perf_statistic = kzalloc_objs(*lstat, DMAR_LATENCY_NUM, in dmar_latency_enable() 38 if (!iommu->perf_statistic) { in dmar_latency_enable() 44 lstat = iommu->perf_statistic; in dmar_latency_enable() 57 void dmar_latency_disable(struct intel_iommu *iommu, enum latency_type type) in dmar_latency_disable() argument 59 struct latency_statistic *lstat = iommu->perf_statistic; in dmar_latency_disable() [all …]
|
| H A D | svm.c | 22 #include "iommu.h" 25 #include "../iommu-pages.h" 28 void intel_svm_check(struct intel_iommu *iommu) in intel_svm_check() argument 30 if (!pasid_supported(iommu)) in intel_svm_check() 34 !cap_fl1gp_support(iommu->cap)) { in intel_svm_check() 36 iommu->name); in intel_svm_check() 41 !cap_fl5lp_support(iommu->cap)) { in intel_svm_check() 43 iommu->name); in intel_svm_check() 47 iommu->flags |= VTD_FLAG_SVM_CAPABLE; in intel_svm_check() 92 intel_pasid_tear_down_entry(info->iommu, dev_pasi in intel_mm_release() 116 struct intel_iommu *iommu; intel_iommu_sva_supported() local 153 struct intel_iommu *iommu = info->iommu; intel_svm_set_dev_pasid() local [all...] |
| /linux/tools/testing/selftests/vfio/lib/ |
| H A D | iommu.c | 69 int __iommu_hva2iova(struct iommu *iommu, void *vaddr, iova_t *iova) in __iommu_hva2iova() argument 73 list_for_each_entry(region, &iommu->dma_regions, link) { in __iommu_hva2iova() 89 iova_t iommu_hva2iova(struct iommu *iommu, void *vaddr) in iommu_hva2iova() argument 94 ret = __iommu_hva2iova(iommu, vaddr, &iova); in iommu_hva2iova() 100 static int vfio_iommu_map(struct iommu *iommu, struct dma_region *region) in vfio_iommu_map() argument 110 if (ioctl(iommu->container_fd, VFIO_IOMMU_MAP_DMA, &args)) in vfio_iommu_map() 116 static int iommufd_map(struct iommu *iommu, struct dma_region *region) in iommufd_map() argument 126 .ioas_id = iommu->ioas_id, in iommufd_map() 129 if (ioctl(iommu->iommufd, IOMMU_IOAS_MAP, &args)) in iommufd_map() 135 int __iommu_map(struct iommu *iommu, struct dma_region *region) in __iommu_map() argument [all …]
|
| /linux/tools/testing/selftests/vfio/lib/include/libvfio/ |
| H A D | iommu.h | 27 struct iommu { struct 35 struct iommu *iommu_init(const char *iommu_mode); argument 36 void iommu_cleanup(struct iommu *iommu); 38 int __iommu_map(struct iommu *iommu, struct dma_region *region); 40 static inline void iommu_map(struct iommu *iommu, struct dma_region *region) in iommu_map() argument 42 VFIO_ASSERT_EQ(__iommu_map(iommu, region), 0); in iommu_map() 45 int __iommu_unmap(struct iommu *iomm 28 modeiommu global() argument 30 iommufdiommu global() argument 47 iommu_unmap(struct iommu * iommu,struct dma_region * region) iommu_unmap() argument 54 iommu_unmap_all(struct iommu * iommu) iommu_unmap_all() argument [all...] |
| /linux/arch/sparc/mm/ |
| H A D | iommu.c | 60 struct iommu_struct *iommu; in sbus_iommu_init() local 67 iommu = kmalloc_obj(struct iommu_struct); in sbus_iommu_init() 68 if (!iommu) { in sbus_iommu_init() 73 iommu->regs = of_ioremap(&op->resource[0], 0, PAGE_SIZE * 3, in sbus_iommu_init() 75 if (!iommu->regs) { in sbus_iommu_init() 80 control = sbus_readl(&iommu->regs->control); in sbus_iommu_init() 85 sbus_writel(control, &iommu->regs->control); in sbus_iommu_init() 87 iommu_invalidate(iommu->regs); in sbus_iommu_init() 88 iommu->start = IOMMU_START; in sbus_iommu_init() 89 iommu->end = 0xffffffff; in sbus_iommu_init() [all …]
|
| /linux/Documentation/ABI/testing/ |
| H A D | debugfs-amd-iommu | 1 What: /sys/kernel/debug/iommu/amd/iommu<x>/mmio 6 MMIO register offset for iommu<x>, and the file outputs the corresponding 7 MMIO register value of iommu<x> 11 $ echo "0x18" > /sys/kernel/debug/iommu/amd/iommu00/mmio 12 $ cat /sys/kernel/debug/iommu/amd/iommu00/mmio 18 What: /sys/kernel/debug/iommu/amd/iommu<x>/capability 23 capability register offset for iommu<x>, and the file outputs the 24 corresponding capability register value of iommu<x>. 28 $ echo "0x10" > /sys/kernel/debug/iommu/amd/iommu00/capability 29 $ cat /sys/kernel/debug/iommu/amd/iommu00/capability [all …]
|
| H A D | sysfs-class-iommu-intel-iommu | 1 What: /sys/class/iommu/<iommu>/intel-iommu/address 8 intel-iommu with a DMAR DRHD table entry. 10 What: /sys/class/iommu/<iommu>/intel-iommu/cap 18 What: /sys/class/iommu/<iommu>/intel-iommu/ecap 26 What: /sys/class/iommu/<iommu>/intel-iommu/version
|
| /linux/drivers/gpu/drm/msm/ |
| H A D | msm_iommu.c | 45 /* based on iommu_pgsize() in iommu.c: */ 138 struct msm_iommu *iommu = to_msm_iommu(pagetable->parent); in msm_iommu_pagetable_map_prr() local 139 phys_addr_t phys = page_to_phys(iommu->prr_page); in msm_iommu_pagetable_map_prr() 224 struct msm_iommu *iommu = to_msm_iommu(pagetable->parent); in msm_iommu_pagetable_destroy() local 232 mutex_lock(&iommu->init_lock); in msm_iommu_pagetable_destroy() 233 if (--iommu->pagetables == 0) { in msm_iommu_pagetable_destroy() 238 __free_page(iommu->prr_page); in msm_iommu_pagetable_destroy() 239 iommu->prr_page = NULL; in msm_iommu_pagetable_destroy() 242 mutex_unlock(&iommu->init_lock); in msm_iommu_pagetable_destroy() 269 struct msm_iommu *iommu in msm_iommu_get_geometry() local 507 struct msm_iommu *iommu = to_msm_iommu(parent); msm_iommu_pagetable_create() local 632 struct msm_iommu *iommu = arg; msm_gpu_fault_handler() local 652 struct msm_iommu *iommu = arg; msm_disp_fault_handler() local 670 struct msm_iommu *iommu = to_msm_iommu(mmu); msm_iommu_detach() local 679 struct msm_iommu *iommu = to_msm_iommu(mmu); msm_iommu_map() local 697 struct msm_iommu *iommu = to_msm_iommu(mmu); msm_iommu_unmap() local 709 struct msm_iommu *iommu = to_msm_iommu(mmu); msm_iommu_destroy() local 726 struct msm_iommu *iommu; msm_iommu_new() local 761 struct msm_iommu *iommu; msm_iommu_disp_new() local 777 struct msm_iommu *iommu; msm_iommu_gpu_new() local [all...] |
| /linux/tools/testing/selftests/vfio/ |
| H A D | vfio_pci_driver_test.c | 21 static void region_setup(struct iommu *iommu, in region_setup() argument 36 iommu_map(iommu, region); in region_setup() 39 static void region_teardown(struct iommu *iommu, struct dma_region *region) in region_teardown() argument 41 iommu_unmap(iommu, region); in region_teardown() 46 struct iommu *iommu; in FIXTURE() local 76 self->iommu = iommu_init(variant->iommu_mode); in FIXTURE_SETUP() 77 self->device = vfio_pci_device_init(device_bdf, self->iommu); in FIXTURE_SETUP() 78 self->iova_allocator = iova_allocator_init(self->iommu); in FIXTURE_SETUP() 82 region_setup(self->iommu, self->iova_allocator, &self->memcpy_region, SZ_1G); in FIXTURE_SETUP() 83 region_setup(self->iommu, self->iova_allocator, &driver->region, SZ_2M); in FIXTURE_SETUP() [all …]
|