Home
last modified time | relevance | path

Searched refs:iommu (Results 1 - 25 of 561) sorted by relevance

12345678910>>...23

/kernel/linux/linux-6.6/drivers/iommu/amd/
H A Dinit.c20 #include <linux/amd-iommu.h>
26 #include <asm/iommu.h>
239 bool translation_pre_enabled(struct amd_iommu *iommu) in translation_pre_enabled() argument
241 return (iommu->flags & AMD_IOMMU_FLAG_TRANS_PRE_ENABLED); in translation_pre_enabled()
244 static void clear_translation_pre_enabled(struct amd_iommu *iommu) in clear_translation_pre_enabled() argument
246 iommu->flags &= ~AMD_IOMMU_FLAG_TRANS_PRE_ENABLED; in clear_translation_pre_enabled()
249 static void init_translation_status(struct amd_iommu *iommu) in init_translation_status() argument
253 ctrl = readq(iommu->mmio_base + MMIO_CONTROL_OFFSET); in init_translation_status()
255 iommu->flags |= AMD_IOMMU_FLAG_TRANS_PRE_ENABLED; in init_translation_status()
277 struct amd_iommu *iommu; in get_global_efr() local
322 early_iommu_features_init(struct amd_iommu *iommu, struct ivhd_header *h) early_iommu_features_init() argument
335 iommu_read_l1(struct amd_iommu *iommu, u16 l1, u8 address) iommu_read_l1() argument
344 iommu_write_l1(struct amd_iommu *iommu, u16 l1, u8 address, u32 val) iommu_write_l1() argument
351 iommu_read_l2(struct amd_iommu *iommu, u8 address) iommu_read_l2() argument
360 iommu_write_l2(struct amd_iommu *iommu, u8 address, u32 val) iommu_write_l2() argument
379 iommu_set_exclusion_range(struct amd_iommu *iommu) iommu_set_exclusion_range() argument
397 iommu_set_cwwb_range(struct amd_iommu *iommu) iommu_set_cwwb_range() argument
421 iommu_set_device_table(struct amd_iommu *iommu) iommu_set_device_table() argument
436 iommu_feature_enable(struct amd_iommu *iommu, u8 bit) iommu_feature_enable() argument
445 iommu_feature_disable(struct amd_iommu *iommu, u8 bit) iommu_feature_disable() argument
454 iommu_set_inv_tlb_timeout(struct amd_iommu *iommu, int timeout) iommu_set_inv_tlb_timeout() argument
465 iommu_enable(struct amd_iommu *iommu) iommu_enable() argument
470 iommu_disable(struct amd_iommu *iommu) iommu_disable() argument
513 iommu_unmap_mmio_space(struct amd_iommu *iommu) iommu_unmap_mmio_space() argument
751 alloc_command_buffer(struct amd_iommu *iommu) alloc_command_buffer() argument
763 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
788 amd_iommu_restart_event_logging(struct amd_iommu *iommu) amd_iommu_restart_event_logging() argument
799 amd_iommu_restart_ga_log(struct amd_iommu *iommu) amd_iommu_restart_ga_log() argument
810 amd_iommu_restart_ppr_log(struct amd_iommu *iommu) amd_iommu_restart_ppr_log() argument
821 amd_iommu_reset_cmd_buffer(struct amd_iommu *iommu) amd_iommu_reset_cmd_buffer() argument
837 iommu_enable_command_buffer(struct amd_iommu *iommu) iommu_enable_command_buffer() argument
855 iommu_disable_command_buffer(struct amd_iommu *iommu) iommu_disable_command_buffer() argument
860 free_command_buffer(struct amd_iommu *iommu) free_command_buffer() argument
865 iommu_alloc_4k_pages(struct amd_iommu *iommu, gfp_t gfp, size_t size) iommu_alloc_4k_pages() argument
882 alloc_event_buffer(struct amd_iommu *iommu) alloc_event_buffer() argument
890 iommu_enable_event_buffer(struct amd_iommu *iommu) iommu_enable_event_buffer() argument
911 iommu_disable_event_buffer(struct amd_iommu *iommu) iommu_disable_event_buffer() argument
916 free_event_buffer(struct amd_iommu *iommu) free_event_buffer() argument
922 alloc_ppr_log(struct amd_iommu *iommu) alloc_ppr_log() argument
930 iommu_enable_ppr_log(struct amd_iommu *iommu) iommu_enable_ppr_log() argument
952 free_ppr_log(struct amd_iommu *iommu) free_ppr_log() argument
957 free_ga_log(struct amd_iommu *iommu) free_ga_log() argument
966 iommu_ga_log_enable(struct amd_iommu *iommu) iommu_ga_log_enable() argument
1001 iommu_init_ga_log(struct amd_iommu *iommu) iommu_init_ga_log() argument
1023 alloc_cwwb_sem(struct amd_iommu *iommu) alloc_cwwb_sem() argument
1030 free_cwwb_sem(struct amd_iommu *iommu) free_cwwb_sem() argument
1036 iommu_enable_xt(struct amd_iommu *iommu) iommu_enable_xt() argument
1049 iommu_enable_gt(struct amd_iommu *iommu) iommu_enable_gt() argument
1067 set_dev_entry_bit(struct amd_iommu *iommu, u16 devid, u8 bit) set_dev_entry_bit() argument
1083 get_dev_entry_bit(struct amd_iommu *iommu, u16 devid, u8 bit) get_dev_entry_bit() argument
1090 __copy_device_table(struct amd_iommu *iommu) __copy_device_table() argument
1182 struct amd_iommu *iommu; copy_device_table() local
1207 amd_iommu_apply_erratum_63(struct amd_iommu *iommu, u16 devid) amd_iommu_apply_erratum_63() argument
1222 set_dev_entry_from_acpi(struct amd_iommu *iommu, u16 devid, u32 flags, u32 ext_flags) set_dev_entry_from_acpi() argument
1356 init_iommu_from_acpi(struct amd_iommu *iommu, struct ivhd_header *h) init_iommu_from_acpi() argument
1695 free_iommu_one(struct amd_iommu *iommu) free_iommu_one() argument
1707 struct amd_iommu *iommu, *next; free_iommu_all() local
1722 amd_iommu_erratum_746_workaround(struct amd_iommu *iommu) amd_iommu_erratum_746_workaround() argument
1753 amd_iommu_ats_write_check_workaround(struct amd_iommu *iommu) amd_iommu_ats_write_check_workaround() argument
1779 init_iommu_one(struct amd_iommu *iommu, struct ivhd_header *h, struct acpi_table_header *ivrs_base) init_iommu_one() argument
1866 init_iommu_one_late(struct amd_iommu *iommu) init_iommu_one_late() argument
1940 struct amd_iommu *iommu; init_iommu_all() local
1985 init_iommu_perf_ctr(struct amd_iommu *iommu) init_iommu_perf_ctr() argument
2008 struct amd_iommu *iommu = dev_to_amd_iommu(dev); amd_iommu_show_cap() local
2017 struct amd_iommu *iommu = dev_to_amd_iommu(dev); amd_iommu_show_features() local
2043 late_iommu_features_init(struct amd_iommu *iommu) late_iommu_features_init() argument
2073 iommu_init_pci(struct amd_iommu *iommu) iommu_init_pci() argument
2196 struct amd_iommu *iommu; print_iommu_info() local
2234 struct amd_iommu *iommu; amd_iommu_init_pci() local
2280 iommu_setup_msi(struct amd_iommu *iommu) iommu_setup_msi() argument
2364 struct amd_iommu *iommu = irqd->chip_data; intcapxt_unmask_irq() local
2379 struct amd_iommu *iommu = irqd->chip_data; intcapxt_mask_irq() local
2444 __iommu_setup_intcapxt(struct amd_iommu *iommu, const char *devname, int hwirq, irq_handler_t thread_fn) __iommu_setup_intcapxt() argument
2478 iommu_setup_intcapxt(struct amd_iommu *iommu) iommu_setup_intcapxt() argument
2509 iommu_init_irq(struct amd_iommu *iommu) iommu_init_irq() argument
2688 iommu_init_flags(struct amd_iommu *iommu) iommu_init_flags() argument
2715 iommu_apply_resume_quirks(struct amd_iommu *iommu) iommu_apply_resume_quirks() argument
2758 iommu_enable_ga(struct amd_iommu *iommu) iommu_enable_ga() argument
2774 iommu_disable_irtcachedis(struct amd_iommu *iommu) iommu_disable_irtcachedis() argument
2779 iommu_enable_irtcachedis(struct amd_iommu *iommu) iommu_enable_irtcachedis() argument
2801 early_enable_iommu(struct amd_iommu *iommu) early_enable_iommu() argument
2826 struct amd_iommu *iommu; early_enable_iommus() local
2876 struct amd_iommu *iommu; enable_iommus_v2() local
2888 struct amd_iommu *iommu; enable_iommus_vapic() local
2953 struct amd_iommu *iommu; disable_iommus() local
2971 struct amd_iommu *iommu; amd_iommu_resume() local
3203 struct amd_iommu *iommu; amd_iommu_enable_interrupts() local
3326 struct amd_iommu *iommu; state_next() local
3408 struct amd_iommu *iommu; amd_iommu_init() local
3711 struct amd_iommu *iommu; get_amd_iommu() local
3728 struct amd_iommu *iommu = get_amd_iommu(idx); amd_iommu_pc_get_max_banks() local
3745 struct amd_iommu *iommu = get_amd_iommu(idx); amd_iommu_pc_get_max_counters() local
3754 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
3792 amd_iommu_pc_get_reg(struct amd_iommu *iommu, u8 bank, u8 cntr, u8 fxn, u64 *value) amd_iommu_pc_get_reg() argument
3800 amd_iommu_pc_set_reg(struct amd_iommu *iommu, u8 bank, u8 cntr, u8 fxn, u64 *value) amd_iommu_pc_set_reg() argument
[all...]
/kernel/linux/linux-6.6/drivers/iommu/
H A Dsun50i-iommu.c14 #include <linux/iommu.h>
99 struct iommu_device iommu; member
124 struct sun50i_iommu *iommu; member
137 static u32 iommu_read(struct sun50i_iommu *iommu, u32 offset) in iommu_read() argument
139 return readl(iommu->base + offset); in iommu_read()
142 static void iommu_write(struct sun50i_iommu *iommu, u32 offset, u32 value) in iommu_write() argument
144 writel(value, iommu->base + offset); in iommu_write()
293 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_table_flush() local
297 dma_sync_single_for_device(iommu in sun50i_table_flush()
300 sun50i_iommu_zap_iova(struct sun50i_iommu *iommu, unsigned long iova) sun50i_iommu_zap_iova() argument
317 sun50i_iommu_zap_ptw_cache(struct sun50i_iommu *iommu, unsigned long iova) sun50i_iommu_zap_ptw_cache() argument
333 sun50i_iommu_zap_range(struct sun50i_iommu *iommu, unsigned long iova, size_t size) sun50i_iommu_zap_range() argument
356 sun50i_iommu_flush_all_tlb(struct sun50i_iommu *iommu) sun50i_iommu_flush_all_tlb() argument
386 struct sun50i_iommu *iommu = sun50i_domain->iommu; sun50i_iommu_flush_iotlb_all() local
409 struct sun50i_iommu *iommu = sun50i_domain->iommu; sun50i_iommu_iotlb_sync_map() local
423 sun50i_iommu_enable(struct sun50i_iommu *iommu) sun50i_iommu_enable() argument
505 sun50i_iommu_disable(struct sun50i_iommu *iommu) sun50i_iommu_disable() argument
520 sun50i_iommu_alloc_page_table(struct sun50i_iommu *iommu, gfp_t gfp) sun50i_iommu_alloc_page_table() argument
543 sun50i_iommu_free_page_table(struct sun50i_iommu *iommu, u32 *page_table) sun50i_iommu_free_page_table() argument
555 struct sun50i_iommu *iommu = sun50i_domain->iommu; sun50i_dte_get_page_table() local
595 struct sun50i_iommu *iommu = sun50i_domain->iommu; sun50i_iommu_map() local
711 sun50i_iommu_attach_domain(struct sun50i_iommu *iommu, struct sun50i_iommu_domain *sun50i_domain) sun50i_iommu_attach_domain() argument
727 sun50i_iommu_detach_domain(struct sun50i_iommu *iommu, struct sun50i_iommu_domain *sun50i_domain) sun50i_iommu_detach_domain() argument
764 struct sun50i_iommu *iommu = dev_iommu_priv_get(dev); sun50i_iommu_detach_device() local
779 struct sun50i_iommu *iommu; sun50i_iommu_attach_device() local
802 struct sun50i_iommu *iommu; sun50i_iommu_probe_device() local
813 struct sun50i_iommu *iommu = sun50i_iommu_from_dev(dev); sun50i_iommu_device_group() local
847 sun50i_iommu_report_fault(struct sun50i_iommu *iommu, unsigned master, phys_addr_t iova, unsigned prot) sun50i_iommu_report_fault() argument
862 sun50i_iommu_handle_pt_irq(struct sun50i_iommu *iommu, unsigned addr_reg, unsigned blame_reg) sun50i_iommu_handle_pt_irq() argument
886 sun50i_iommu_handle_perm_irq(struct sun50i_iommu *iommu) sun50i_iommu_handle_perm_irq() argument
944 struct sun50i_iommu *iommu = dev_id; sun50i_iommu_irq() local
981 struct sun50i_iommu *iommu; sun50i_iommu_probe() local
[all...]
H A Drockchip-iommu.c17 #include <linux/iommu.h>
113 struct iommu_device iommu; member
115 struct iommu_domain *domain; /* domain to which iommu is attached */
121 struct rk_iommu *iommu; member
142 * The Rockchip rk3288 iommu uses a 2-level page table.
151 * Each iommu device has a MMU_DTE_ADDR register that contains the physical
345 static void rk_iommu_command(struct rk_iommu *iommu, u32 command) in rk_iommu_command() argument
349 for (i = 0; i < iommu->num_mmu; i++) in rk_iommu_command()
350 writel(command, iommu->bases[i] + RK_MMU_COMMAND); in rk_iommu_command()
357 static void rk_iommu_zap_lines(struct rk_iommu *iommu, dma_addr_ in rk_iommu_base_command() argument
374 rk_iommu_is_stall_active(struct rk_iommu *iommu) rk_iommu_is_stall_active() argument
386 rk_iommu_is_paging_enabled(struct rk_iommu *iommu) rk_iommu_is_paging_enabled() argument
398 rk_iommu_is_reset_done(struct rk_iommu *iommu) rk_iommu_is_reset_done() argument
409 rk_iommu_enable_stall(struct rk_iommu *iommu) rk_iommu_enable_stall() argument
434 rk_iommu_disable_stall(struct rk_iommu *iommu) rk_iommu_disable_stall() argument
455 rk_iommu_enable_paging(struct rk_iommu *iommu) rk_iommu_enable_paging() argument
476 rk_iommu_disable_paging(struct rk_iommu *iommu) rk_iommu_disable_paging() argument
497 rk_iommu_force_reset(struct rk_iommu *iommu) rk_iommu_force_reset() argument
533 log_iova(struct rk_iommu *iommu, int index, dma_addr_t iova) log_iova() argument
582 struct rk_iommu *iommu = dev_id; rk_iommu_irq() local
686 struct rk_iommu *iommu; rk_iommu_zap_iova() local
905 rk_iommu_disable(struct rk_iommu *iommu) rk_iommu_disable() argument
922 rk_iommu_enable(struct rk_iommu *iommu) rk_iommu_enable() argument
959 struct rk_iommu *iommu; rk_iommu_identity_attach() local
1016 struct rk_iommu *iommu; rk_iommu_attach_device() local
1137 struct rk_iommu *iommu; rk_iommu_probe_device() local
1160 struct rk_iommu *iommu; rk_iommu_device_group() local
1210 struct rk_iommu *iommu; rk_iommu_probe() local
1337 struct rk_iommu *iommu = platform_get_drvdata(pdev); rk_iommu_shutdown() local
1351 struct rk_iommu *iommu = dev_get_drvdata(dev); rk_iommu_suspend() local
1362 struct rk_iommu *iommu = dev_get_drvdata(dev); rk_iommu_resume() local
[all...]
H A Dmsm_iommu.c18 #include <linux/iommu.h>
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 in __disable_clocks()
120 struct msm_iommu_dev *iommu = NULL; __flush_iotlb() local
142 struct msm_iommu_dev *iommu = NULL; __flush_iotlb_range() local
206 config_mids(struct msm_iommu_dev *iommu, struct msm_iommu_ctx_dev *master) config_mids() argument
366 struct msm_iommu_dev *iommu, *ret = NULL; find_iommu_for_dev() local
384 struct msm_iommu_dev *iommu; msm_iommu_probe_device() local
401 struct msm_iommu_dev *iommu; msm_iommu_attach_dev() local
451 struct msm_iommu_dev *iommu; msm_iommu_set_platform_dma() local
516 struct msm_iommu_dev *iommu; msm_iommu_iova_to_phys() local
586 insert_iommu_master(struct device *dev, struct msm_iommu_dev **iommu, struct of_phandle_args *spec) insert_iommu_master() argument
618 struct msm_iommu_dev *iommu = NULL, *iter; qcom_iommu_of_xlate() local
644 struct msm_iommu_dev *iommu = dev_id; msm_iommu_fault_handler() local
705 struct msm_iommu_dev *iommu; msm_iommu_probe() local
816 struct msm_iommu_dev *iommu = platform_get_drvdata(pdev); msm_iommu_remove() local
[all...]
/kernel/linux/linux-5.10/drivers/iommu/amd/
H A Dinit.c19 #include <linux/amd-iommu.h>
25 #include <asm/iommu.h>
267 bool translation_pre_enabled(struct amd_iommu *iommu) in translation_pre_enabled() argument
269 return (iommu->flags & AMD_IOMMU_FLAG_TRANS_PRE_ENABLED); in translation_pre_enabled()
273 static void clear_translation_pre_enabled(struct amd_iommu *iommu) in clear_translation_pre_enabled() argument
275 iommu->flags &= ~AMD_IOMMU_FLAG_TRANS_PRE_ENABLED; in clear_translation_pre_enabled()
278 static void init_translation_status(struct amd_iommu *iommu) in init_translation_status() argument
282 ctrl = readq(iommu->mmio_base + MMIO_CONTROL_OFFSET); in init_translation_status()
284 iommu->flags |= AMD_IOMMU_FLAG_TRANS_PRE_ENABLED; in init_translation_status()
310 struct amd_iommu *iommu; in check_feature_on_all_iommus() local
327 early_iommu_features_init(struct amd_iommu *iommu, struct ivhd_header *h) early_iommu_features_init() argument
336 iommu_read_l1(struct amd_iommu *iommu, u16 l1, u8 address) iommu_read_l1() argument
345 iommu_write_l1(struct amd_iommu *iommu, u16 l1, u8 address, u32 val) iommu_write_l1() argument
352 iommu_read_l2(struct amd_iommu *iommu, u8 address) iommu_read_l2() argument
361 iommu_write_l2(struct amd_iommu *iommu, u8 address, u32 val) iommu_write_l2() argument
380 iommu_set_exclusion_range(struct amd_iommu *iommu) iommu_set_exclusion_range() argument
398 iommu_set_cwwb_range(struct amd_iommu *iommu) iommu_set_cwwb_range() argument
422 iommu_set_device_table(struct amd_iommu *iommu) iommu_set_device_table() argument
435 iommu_feature_enable(struct amd_iommu *iommu, u8 bit) iommu_feature_enable() argument
444 iommu_feature_disable(struct amd_iommu *iommu, u8 bit) iommu_feature_disable() argument
453 iommu_set_inv_tlb_timeout(struct amd_iommu *iommu, int timeout) iommu_set_inv_tlb_timeout() argument
464 iommu_enable(struct amd_iommu *iommu) iommu_enable() argument
469 iommu_disable(struct amd_iommu *iommu) iommu_disable() argument
505 iommu_unmap_mmio_space(struct amd_iommu *iommu) iommu_unmap_mmio_space() argument
655 alloc_command_buffer(struct amd_iommu *iommu) alloc_command_buffer() argument
667 amd_iommu_restart_event_logging(struct amd_iommu *iommu) amd_iommu_restart_event_logging() argument
677 amd_iommu_reset_cmd_buffer(struct amd_iommu *iommu) amd_iommu_reset_cmd_buffer() argument
693 iommu_enable_command_buffer(struct amd_iommu *iommu) iommu_enable_command_buffer() argument
711 iommu_disable_command_buffer(struct amd_iommu *iommu) iommu_disable_command_buffer() argument
716 free_command_buffer(struct amd_iommu *iommu) free_command_buffer() argument
721 iommu_alloc_4k_pages(struct amd_iommu *iommu, gfp_t gfp, size_t size) iommu_alloc_4k_pages() argument
738 alloc_event_buffer(struct amd_iommu *iommu) alloc_event_buffer() argument
746 iommu_enable_event_buffer(struct amd_iommu *iommu) iommu_enable_event_buffer() argument
767 iommu_disable_event_buffer(struct amd_iommu *iommu) iommu_disable_event_buffer() argument
772 free_event_buffer(struct amd_iommu *iommu) free_event_buffer() argument
778 alloc_ppr_log(struct amd_iommu *iommu) alloc_ppr_log() argument
786 iommu_enable_ppr_log(struct amd_iommu *iommu) iommu_enable_ppr_log() argument
806 free_ppr_log(struct amd_iommu *iommu) free_ppr_log() argument
811 free_ga_log(struct amd_iommu *iommu) free_ga_log() argument
819 iommu_ga_log_enable(struct amd_iommu *iommu) iommu_ga_log_enable() argument
860 iommu_init_ga_log(struct amd_iommu *iommu) iommu_init_ga_log() argument
885 alloc_cwwb_sem(struct amd_iommu *iommu) alloc_cwwb_sem() argument
892 free_cwwb_sem(struct amd_iommu *iommu) free_cwwb_sem() argument
898 iommu_enable_xt(struct amd_iommu *iommu) iommu_enable_xt() argument
911 iommu_enable_gt(struct amd_iommu *iommu) iommu_enable_gt() argument
943 struct amd_iommu *iommu; copy_device_table() local
1049 set_iommu_for_device(struct amd_iommu *iommu, u16 devid) set_iommu_for_device() argument
1058 set_dev_entry_from_acpi(struct amd_iommu *iommu, u16 devid, u32 flags, u32 ext_flags) set_dev_entry_from_acpi() argument
1192 init_iommu_from_acpi(struct amd_iommu *iommu, struct ivhd_header *h) init_iommu_from_acpi() argument
1459 free_iommu_one(struct amd_iommu *iommu) free_iommu_one() argument
1471 struct amd_iommu *iommu, *next; free_iommu_all() local
1486 amd_iommu_erratum_746_workaround(struct amd_iommu *iommu) amd_iommu_erratum_746_workaround() argument
1517 amd_iommu_ats_write_check_workaround(struct amd_iommu *iommu) amd_iommu_ats_write_check_workaround() argument
1543 init_iommu_one(struct amd_iommu *iommu, struct ivhd_header *h) init_iommu_one() argument
1701 struct amd_iommu *iommu; init_iommu_all() local
1735 init_iommu_perf_ctr(struct amd_iommu *iommu) init_iommu_perf_ctr() argument
1758 struct amd_iommu *iommu = dev_to_amd_iommu(dev); amd_iommu_show_cap() local
1767 struct amd_iommu *iommu = dev_to_amd_iommu(dev); amd_iommu_show_features() local
1793 late_iommu_features_init(struct amd_iommu *iommu) late_iommu_features_init() argument
1817 iommu_init_pci(struct amd_iommu *iommu) iommu_init_pci() argument
1923 struct amd_iommu *iommu; print_iommu_info() local
1956 struct amd_iommu *iommu; amd_iommu_init_pci() local
2000 iommu_setup_msi(struct amd_iommu *iommu) iommu_setup_msi() argument
2034 iommu_update_intcapxt(struct amd_iommu *iommu) iommu_update_intcapxt() argument
2063 struct amd_iommu *iommu; _irq_notifier_notify() local
2077 iommu_init_intcapxt(struct amd_iommu *iommu) iommu_init_intcapxt() argument
2108 iommu_init_msi(struct amd_iommu *iommu) iommu_init_msi() argument
2265 iommu_init_flags(struct amd_iommu *iommu) iommu_init_flags() argument
2292 iommu_apply_resume_quirks(struct amd_iommu *iommu) iommu_apply_resume_quirks() argument
2335 iommu_enable_ga(struct amd_iommu *iommu) iommu_enable_ga() argument
2353 early_enable_iommu(struct amd_iommu *iommu) early_enable_iommu() argument
2377 struct amd_iommu *iommu; early_enable_iommus() local
2429 struct amd_iommu *iommu; enable_iommus_v2() local
2446 struct amd_iommu *iommu; disable_iommus() local
2464 struct amd_iommu *iommu; amd_iommu_resume() local
2761 struct amd_iommu *iommu; amd_iommu_enable_interrupts() local
2866 struct amd_iommu *iommu; state_next() local
2942 struct amd_iommu *iommu; amd_iommu_init() local
3220 struct amd_iommu *iommu; get_amd_iommu() local
3238 struct amd_iommu *iommu = get_amd_iommu(idx); amd_iommu_pc_get_max_banks() local
3255 struct amd_iommu *iommu = get_amd_iommu(idx); amd_iommu_pc_get_max_counters() local
3264 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
3302 amd_iommu_pc_get_reg(struct amd_iommu *iommu, u8 bank, u8 cntr, u8 fxn, u64 *value) amd_iommu_pc_get_reg() argument
3311 amd_iommu_pc_set_reg(struct amd_iommu *iommu, u8 bank, u8 cntr, u8 fxn, u64 *value) amd_iommu_pc_set_reg() argument
[all...]
/kernel/linux/linux-5.10/drivers/iommu/
H A Dsun50i-iommu.c10 #include <linux/dma-iommu.h>
15 #include <linux/iommu.h>
98 struct iommu_device iommu; member
123 struct sun50i_iommu *iommu; member
136 static u32 iommu_read(struct sun50i_iommu *iommu, u32 offset) in iommu_read() argument
138 return readl(iommu->base + offset); in iommu_read()
141 static void iommu_write(struct sun50i_iommu *iommu, u32 offset, u32 value) in iommu_write() argument
143 writel(value, iommu->base + offset); in iommu_write()
292 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_table_flush() local
299 sun50i_iommu_flush_all_tlb(struct sun50i_iommu *iommu) sun50i_iommu_flush_all_tlb() argument
329 struct sun50i_iommu *iommu = sun50i_domain->iommu; sun50i_iommu_flush_iotlb_all() local
354 sun50i_iommu_enable(struct sun50i_iommu *iommu) sun50i_iommu_enable() argument
436 sun50i_iommu_disable(struct sun50i_iommu *iommu) sun50i_iommu_disable() argument
451 sun50i_iommu_alloc_page_table(struct sun50i_iommu *iommu, gfp_t gfp) sun50i_iommu_alloc_page_table() argument
474 sun50i_iommu_free_page_table(struct sun50i_iommu *iommu, u32 *page_table) sun50i_iommu_free_page_table() argument
486 struct sun50i_iommu *iommu = sun50i_domain->iommu; sun50i_dte_get_page_table() local
526 struct sun50i_iommu *iommu = sun50i_domain->iommu; sun50i_iommu_map() local
652 sun50i_iommu_attach_domain(struct sun50i_iommu *iommu, struct sun50i_iommu_domain *sun50i_domain) sun50i_iommu_attach_domain() argument
668 sun50i_iommu_detach_domain(struct sun50i_iommu *iommu, struct sun50i_iommu_domain *sun50i_domain) sun50i_iommu_detach_domain() argument
705 struct sun50i_iommu *iommu = dev_iommu_priv_get(dev); sun50i_iommu_detach_device() local
720 struct sun50i_iommu *iommu; sun50i_iommu_attach_device() local
743 struct sun50i_iommu *iommu; sun50i_iommu_probe_device() local
756 struct sun50i_iommu *iommu = sun50i_iommu_from_dev(dev); sun50i_iommu_device_group() local
789 sun50i_iommu_report_fault(struct sun50i_iommu *iommu, unsigned master, phys_addr_t iova, unsigned prot) sun50i_iommu_report_fault() argument
802 sun50i_iommu_handle_pt_irq(struct sun50i_iommu *iommu, unsigned addr_reg, unsigned blame_reg) sun50i_iommu_handle_pt_irq() argument
826 sun50i_iommu_handle_perm_irq(struct sun50i_iommu *iommu) sun50i_iommu_handle_perm_irq() argument
884 struct sun50i_iommu *iommu = dev_id; sun50i_iommu_irq() local
921 struct sun50i_iommu *iommu; sun50i_iommu_probe() local
[all...]
H A Drockchip-iommu.c13 #include <linux/dma-iommu.h>
18 #include <linux/iommu.h>
107 struct iommu_device iommu; member
109 struct iommu_domain *domain; /* domain to which iommu is attached */
115 struct rk_iommu *iommu; member
134 * The Rockchip rk3288 iommu uses a 2-level page table.
143 * Each iommu device has a MMU_DTE_ADDR register that contains the physical
285 static void rk_iommu_command(struct rk_iommu *iommu, u32 command) in rk_iommu_command() argument
289 for (i = 0; i < iommu->num_mmu; i++) in rk_iommu_command()
290 writel(command, iommu in rk_iommu_command()
297 rk_iommu_zap_lines(struct rk_iommu *iommu, dma_addr_t iova_start, size_t size) rk_iommu_zap_lines() argument
314 rk_iommu_is_stall_active(struct rk_iommu *iommu) rk_iommu_is_stall_active() argument
326 rk_iommu_is_paging_enabled(struct rk_iommu *iommu) rk_iommu_is_paging_enabled() argument
338 rk_iommu_is_reset_done(struct rk_iommu *iommu) rk_iommu_is_reset_done() argument
349 rk_iommu_enable_stall(struct rk_iommu *iommu) rk_iommu_enable_stall() argument
374 rk_iommu_disable_stall(struct rk_iommu *iommu) rk_iommu_disable_stall() argument
395 rk_iommu_enable_paging(struct rk_iommu *iommu) rk_iommu_enable_paging() argument
416 rk_iommu_disable_paging(struct rk_iommu *iommu) rk_iommu_disable_paging() argument
437 rk_iommu_force_reset(struct rk_iommu *iommu) rk_iommu_force_reset() argument
473 log_iova(struct rk_iommu *iommu, int index, dma_addr_t iova) log_iova() argument
522 struct rk_iommu *iommu = dev_id; rk_iommu_irq() local
626 struct rk_iommu *iommu; rk_iommu_zap_iova() local
845 rk_iommu_disable(struct rk_iommu *iommu) rk_iommu_disable() argument
862 rk_iommu_enable(struct rk_iommu *iommu) rk_iommu_enable() argument
899 struct rk_iommu *iommu; rk_iommu_detach_device() local
932 struct rk_iommu *iommu; rk_iommu_attach_device() local
1060 struct rk_iommu *iommu; rk_iommu_probe_device() local
1083 struct rk_iommu *iommu; rk_iommu_device_group() local
1128 struct rk_iommu *iommu; rk_iommu_probe() local
1246 struct rk_iommu *iommu = platform_get_drvdata(pdev); rk_iommu_shutdown() local
1260 struct rk_iommu *iommu = dev_get_drvdata(dev); rk_iommu_suspend() local
1271 struct rk_iommu *iommu = dev_get_drvdata(dev); rk_iommu_resume() local
[all...]
H A Dmsm_iommu.c18 #include <linux/iommu.h>
55 static int __enable_clocks(struct msm_iommu_dev *iommu) in __enable_clocks() argument
59 ret = clk_enable(iommu->pclk); in __enable_clocks()
63 if (iommu->clk) { in __enable_clocks()
64 ret = clk_enable(iommu->clk); in __enable_clocks()
66 clk_disable(iommu->pclk); in __enable_clocks()
72 static void __disable_clocks(struct msm_iommu_dev *iommu) in __disable_clocks() argument
74 if (iommu->clk) in __disable_clocks()
75 clk_disable(iommu->clk); in __disable_clocks()
76 clk_disable(iommu in __disable_clocks()
121 struct msm_iommu_dev *iommu = NULL; __flush_iotlb() local
143 struct msm_iommu_dev *iommu = NULL; __flush_iotlb_range() local
214 config_mids(struct msm_iommu_dev *iommu, struct msm_iommu_ctx_dev *master) config_mids() argument
375 struct msm_iommu_dev *iommu, *ret = NULL; find_iommu_for_dev() local
393 struct msm_iommu_dev *iommu; msm_iommu_probe_device() local
414 struct msm_iommu_dev *iommu; msm_iommu_attach_dev() local
464 struct msm_iommu_dev *iommu; msm_iommu_detach_dev() local
517 struct msm_iommu_dev *iommu; msm_iommu_iova_to_phys() local
592 insert_iommu_master(struct device *dev, struct msm_iommu_dev **iommu, struct of_phandle_args *spec) insert_iommu_master() argument
619 struct msm_iommu_dev *iommu = NULL, *iter; qcom_iommu_of_xlate() local
645 struct msm_iommu_dev *iommu = dev_id; msm_iommu_fault_handler() local
705 struct msm_iommu_dev *iommu; msm_iommu_probe() local
825 struct msm_iommu_dev *iommu = platform_get_drvdata(pdev); msm_iommu_remove() local
[all...]
H A Diommu-sysfs.c10 #include <linux/iommu.h>
38 .name = "iommu",
54 int iommu_device_sysfs_add(struct iommu_device *iommu, in iommu_device_sysfs_add() argument
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 in iommu_device_sysfs_add()
92 iommu_device_sysfs_remove(struct iommu_device *iommu) iommu_device_sysfs_remove() argument
106 iommu_device_link(struct iommu_device *iommu, struct device *link) iommu_device_link() argument
127 iommu_device_unlink(struct iommu_device *iommu, struct device *link) iommu_device_unlink() argument
[all...]
/kernel/linux/linux-5.10/arch/sparc/kernel/
H A Diommu-common.c4 * 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) 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
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) iommu_tbl_range_alloc() argument
246 iommu_tbl_range_free(struct iommu_map_table *iommu, u64 dma_addr, unsigned long npages, unsigned long entry) iommu_tbl_range_free() argument
[all...]
H A Diommu.c2 /* 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); 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 in iommu_flushall()
83 iopte_make_dummy(struct iommu *iommu, iopte_t *iopte) iopte_make_dummy() argument
93 iommu_table_init(struct iommu *iommu, int tsbsize, u32 dma_offset, u32 dma_addr_mask, int numa_node) iommu_table_init() argument
156 alloc_npages(struct device *dev, struct iommu *iommu, unsigned long npages) alloc_npages() argument
170 iommu_alloc_ctx(struct iommu *iommu) iommu_alloc_ctx() argument
188 iommu_free_ctx(struct iommu *iommu, int ctx) iommu_free_ctx() argument
202 struct iommu *iommu; dma_4u_alloc_coherent() local
250 struct iommu *iommu; dma_4u_free_coherent() local
268 struct iommu *iommu; dma_4u_map_page() local
320 strbuf_flush(struct strbuf *strbuf, struct iommu *iommu, u32 vaddr, unsigned long ctx, unsigned long npages, enum dma_data_direction direction) strbuf_flush() argument
390 struct iommu *iommu; dma_4u_unmap_page() local
443 struct iommu *iommu; dma_4u_map_sg() local
589 fetch_sg_ctx(struct iommu *iommu, struct scatterlist *sg) fetch_sg_ctx() argument
614 struct iommu *iommu; dma_4u_unmap_sg() local
663 struct iommu *iommu; dma_4u_sync_single_for_cpu() local
701 struct iommu *iommu; dma_4u_sync_sg_for_cpu() local
745 struct iommu *iommu = dev->archdata.iommu; dma_4u_supported() local
[all...]
/kernel/linux/linux-6.6/arch/sparc/kernel/
H A Diommu-common.c4 * 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) 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
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) iommu_tbl_range_alloc() argument
246 iommu_tbl_range_free(struct iommu_map_table *iommu, u64 dma_addr, unsigned long npages, unsigned long entry) iommu_tbl_range_free() argument
[all...]
H A Diommu.c2 /* 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); 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 in iommu_flushall()
83 iopte_make_dummy(struct iommu *iommu, iopte_t *iopte) iopte_make_dummy() argument
93 iommu_table_init(struct iommu *iommu, int tsbsize, u32 dma_offset, u32 dma_addr_mask, int numa_node) iommu_table_init() argument
156 alloc_npages(struct device *dev, struct iommu *iommu, unsigned long npages) alloc_npages() argument
170 iommu_alloc_ctx(struct iommu *iommu) iommu_alloc_ctx() argument
188 iommu_free_ctx(struct iommu *iommu, int ctx) iommu_free_ctx() argument
202 struct iommu *iommu; dma_4u_alloc_coherent() local
250 struct iommu *iommu; dma_4u_free_coherent() local
268 struct iommu *iommu; dma_4u_map_page() local
320 strbuf_flush(struct strbuf *strbuf, struct iommu *iommu, u32 vaddr, unsigned long ctx, unsigned long npages, enum dma_data_direction direction) strbuf_flush() argument
390 struct iommu *iommu; dma_4u_unmap_page() local
443 struct iommu *iommu; dma_4u_map_sg() local
587 fetch_sg_ctx(struct iommu *iommu, struct scatterlist *sg) fetch_sg_ctx() argument
612 struct iommu *iommu; dma_4u_unmap_sg() local
661 struct iommu *iommu; dma_4u_sync_single_for_cpu() local
699 struct iommu *iommu; dma_4u_sync_sg_for_cpu() local
743 struct iommu *iommu = dev->archdata.iommu; dma_4u_supported() local
[all...]
/kernel/linux/linux-5.10/drivers/iommu/intel/
H A Dirq_remapping.c13 #include <linux/intel-iommu.h>
33 struct intel_iommu *iommu; member
40 struct intel_iommu *iommu; member
47 struct intel_iommu *iommu; member
74 * ->iommu->register_lock
83 static void iommu_disable_irq_remapping(struct intel_iommu *iommu);
86 static bool ir_pre_enabled(struct intel_iommu *iommu) in ir_pre_enabled() argument
88 return (iommu->flags & VTD_FLAG_IRQ_REMAP_PRE_ENABLED); in ir_pre_enabled()
91 static void clear_ir_pre_enabled(struct intel_iommu *iommu) in clear_ir_pre_enabled() argument
93 iommu in clear_ir_pre_enabled()
96 init_ir_status(struct intel_iommu *iommu) init_ir_status() argument
105 alloc_irte(struct intel_iommu *iommu, struct irq_2_iommu *irq_iommu, u16 count) alloc_irte() argument
145 qi_flush_iec(struct intel_iommu *iommu, int index, int mask) qi_flush_iec() argument
161 struct intel_iommu *iommu; modify_irte() local
231 struct intel_iommu *iommu = map_ioapic_to_iommu(apic); map_ioapic_to_ir() local
246 struct intel_iommu *iommu; clear_entries() local
438 iommu_load_old_irte(struct intel_iommu *iommu) iommu_load_old_irte() argument
480 iommu_set_irq_remapping(struct intel_iommu *iommu, int mode) iommu_set_irq_remapping() argument
507 iommu_enable_irq_remapping(struct intel_iommu *iommu) iommu_enable_irq_remapping() argument
541 intel_setup_irq_remapping(struct intel_iommu *iommu) intel_setup_irq_remapping() argument
648 intel_teardown_irq_remapping(struct intel_iommu *iommu) intel_teardown_irq_remapping() argument
678 iommu_disable_irq_remapping(struct intel_iommu *iommu) iommu_disable_irq_remapping() argument
720 struct intel_iommu *iommu; intel_cleanup_irq_remapping() local
736 struct intel_iommu *iommu; intel_prepare_irq_remapping() local
807 struct intel_iommu *iommu; set_irq_posting_cap() local
833 struct intel_iommu *iommu; intel_enable_irq_remapping() local
861 ir_parse_one_hpet_scope(struct acpi_dmar_device_scope *scope, struct intel_iommu *iommu, struct acpi_dmar_hardware_unit *drhd) ir_parse_one_hpet_scope() argument
906 ir_parse_one_ioapic_scope(struct acpi_dmar_device_scope *scope, struct intel_iommu *iommu, struct acpi_dmar_hardware_unit *drhd) ir_parse_one_ioapic_scope() argument
951 ir_parse_ioapic_hpet_scope(struct acpi_dmar_header *header, struct intel_iommu *iommu) ir_parse_ioapic_hpet_scope() argument
975 ir_remove_ioapic_hpet_scope(struct intel_iommu *iommu) ir_remove_ioapic_hpet_scope() argument
995 struct intel_iommu *iommu; parse_ioapics_under_ir() local
1046 struct intel_iommu *iommu = NULL; disable_irq_remapping() local
1069 struct intel_iommu *iommu = NULL; reenable_irq_remapping() local
1358 struct intel_iommu *iommu = domain->host_data; intel_irq_remapping_alloc() local
1466 dmar_ir_add(struct dmar_drhd_unit *dmaru, struct intel_iommu *iommu) dmar_ir_add() argument
1502 struct intel_iommu *iommu = dmaru->iommu; dmar_ir_hotplug() local
[all...]
H A Ddmar.c22 #include <linux/intel-iommu.h>
29 #include <linux/iommu.h>
65 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()
933 x86_init.iommu.iommu_init = intel_iommu_init; in detect_intel_iommu()
948 static void unmap_iommu(struct intel_iommu *iommu) in unmap_iommu() argument
950 iounmap(iommu->reg); in unmap_iommu()
951 release_mem_region(iommu in unmap_iommu()
962 map_iommu(struct intel_iommu *iommu, u64 phys_addr) map_iommu() argument
1025 dmar_alloc_seq_id(struct intel_iommu *iommu) dmar_alloc_seq_id() argument
1039 dmar_free_seq_id(struct intel_iommu *iommu) dmar_free_seq_id() argument
1049 struct intel_iommu *iommu; alloc_iommu() local
1160 free_iommu(struct intel_iommu *iommu) free_iommu() argument
1204 qi_check_fault(struct intel_iommu *iommu, int index, int wait_index) qi_check_fault() argument
1277 qi_submit_sync(struct intel_iommu *iommu, struct qi_desc *desc, unsigned int count, unsigned long options) qi_submit_sync() argument
1368 qi_global_iec(struct intel_iommu *iommu) qi_global_iec() argument
1381 qi_flush_context(struct intel_iommu *iommu, u16 did, u16 sid, u8 fm, u64 type) qi_flush_context() argument
1395 qi_flush_iotlb(struct intel_iommu *iommu, u16 did, u64 addr, unsigned int size_order, u64 type) qi_flush_iotlb() argument
1419 qi_flush_dev_iotlb(struct intel_iommu *iommu, u16 sid, u16 pfsid, u16 qdep, u64 addr, unsigned mask) qi_flush_dev_iotlb() argument
1442 qi_flush_piotlb(struct intel_iommu *iommu, u16 did, u32 pasid, u64 addr, unsigned long npages, bool ih) qi_flush_piotlb() argument
1483 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
1526 qi_flush_pasid_cache(struct intel_iommu *iommu, u16 did, u64 granu, u32 pasid) qi_flush_pasid_cache() argument
1539 dmar_disable_qi(struct intel_iommu *iommu) dmar_disable_qi() argument
1574 __dmar_enable_qi(struct intel_iommu *iommu) __dmar_enable_qi() argument
1612 dmar_enable_qi(struct intel_iommu *iommu) dmar_enable_qi() argument
1776 dmar_msi_reg(struct intel_iommu *iommu, int irq) dmar_msi_reg() argument
1788 struct intel_iommu *iommu = irq_data_get_irq_handler_data(data); dmar_msi_unmask() local
1802 struct intel_iommu *iommu = irq_data_get_irq_handler_data(data); dmar_msi_mask() local
1816 struct intel_iommu *iommu = irq_get_handler_data(irq); dmar_msi_write() local
1829 struct intel_iommu *iommu = irq_get_handler_data(irq); dmar_msi_read() local
1840 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
1866 struct intel_iommu *iommu = dev_id; dmar_fault() local
1943 dmar_set_interrupt(struct intel_iommu *iommu) dmar_set_interrupt() argument
1970 struct intel_iommu *iommu; enable_drhd_fault_handling() local
1999 dmar_reenable_qi(struct intel_iommu *iommu) dmar_reenable_qi() argument
[all...]
H A Diommu.c33 #include <linux/iommu.h>
34 #include <linux/intel-iommu.h>
47 #include <asm/iommu.h>
171 /* global iommu list, set NULL for ignored DMAR units */
293 * 2. It maps to each iommu if successful.
294 * 3. Each iommu mapps to this domain if successful.
414 static bool translation_pre_enabled(struct intel_iommu *iommu) in translation_pre_enabled() argument
416 return (iommu->flags & VTD_FLAG_TRANS_PRE_ENABLED); in translation_pre_enabled()
419 static void clear_translation_pre_enabled(struct intel_iommu *iommu) in clear_translation_pre_enabled() argument
421 iommu in clear_translation_pre_enabled()
424 init_translation_status(struct intel_iommu *iommu) init_translation_status() argument
479 get_iommu_domain(struct intel_iommu *iommu, u16 did) get_iommu_domain() argument
491 set_iommu_domain(struct intel_iommu *iommu, u16 did, struct dmar_domain *domain) set_iommu_domain() argument
568 __iommu_calculate_sagaw(struct intel_iommu *iommu) __iommu_calculate_sagaw() argument
586 __iommu_calculate_agaw(struct intel_iommu *iommu, int max_gaw) __iommu_calculate_agaw() argument
603 iommu_calculate_max_sagaw(struct intel_iommu *iommu) iommu_calculate_max_sagaw() argument
613 iommu_calculate_agaw(struct intel_iommu *iommu) iommu_calculate_agaw() argument
636 iommu_paging_structure_coherency(struct intel_iommu *iommu) iommu_paging_structure_coherency() argument
645 struct intel_iommu *iommu; domain_update_iommu_coherency() local
675 struct intel_iommu *iommu; domain_update_iommu_snooping() local
703 struct intel_iommu *iommu; domain_update_iommu_superpage() local
785 iommu_context_addr(struct intel_iommu *iommu, u8 bus, u8 devfn, int alloc) iommu_context_addr() argument
881 iommu_is_dummy(struct intel_iommu *iommu, struct device *dev) iommu_is_dummy() argument
902 struct intel_iommu *iommu; device_to_iommu() local
975 device_context_mapped(struct intel_iommu *iommu, u8 bus, u8 devfn) device_context_mapped() argument
989 free_context_table(struct intel_iommu *iommu) free_context_table() argument
1332 iommu_alloc_root_entry(struct intel_iommu *iommu) iommu_alloc_root_entry() argument
1353 iommu_set_root_entry(struct intel_iommu *iommu) iommu_set_root_entry() argument
1380 iommu_flush_write_buffer(struct intel_iommu *iommu) iommu_flush_write_buffer() argument
1399 __iommu_flush_context(struct intel_iommu *iommu, u16 did, u16 source_id, u8 function_mask, u64 type) __iommu_flush_context() argument
1433 __iommu_flush_iotlb(struct intel_iommu *iommu, u16 did, u64 addr, unsigned int size_order, u64 type) __iommu_flush_iotlb() argument
1490 iommu_support_dev_iotlb(struct dmar_domain *domain, struct intel_iommu *iommu, u8 bus, u8 devfn) iommu_support_dev_iotlb() argument
1632 domain_flush_piotlb(struct intel_iommu *iommu, struct dmar_domain *domain, u64 addr, unsigned long npages, bool ih) domain_flush_piotlb() argument
1646 iommu_flush_iotlb_psi(struct intel_iommu *iommu, struct dmar_domain *domain, unsigned long pfn, unsigned int pages, int ih, int map) iommu_flush_iotlb_psi() argument
1707 __mapping_notify_one(struct intel_iommu *iommu, struct dmar_domain *domain, unsigned long pfn, unsigned int pages) __mapping_notify_one() argument
1729 struct intel_iommu *iommu = g_iommus[idx]; iommu_flush_iova() local
1744 iommu_disable_protect_mem_regions(struct intel_iommu *iommu) iommu_disable_protect_mem_regions() argument
1764 iommu_enable_translation(struct intel_iommu *iommu) iommu_enable_translation() argument
1780 iommu_disable_translation(struct intel_iommu *iommu) iommu_disable_translation() argument
1800 iommu_init_domains(struct intel_iommu *iommu) iommu_init_domains() argument
1858 disable_dmar_iommu(struct intel_iommu *iommu) disable_dmar_iommu() argument
1882 free_dmar_iommu(struct intel_iommu *iommu) free_dmar_iommu() argument
1919 struct intel_iommu *iommu; first_level_by_default() local
1959 domain_attach_iommu(struct dmar_domain *domain, struct intel_iommu *iommu) domain_attach_iommu() argument
1993 domain_detach_iommu(struct dmar_domain *domain, struct intel_iommu *iommu) domain_detach_iommu() argument
2140 domain_context_mapping_one(struct dmar_domain *domain, struct intel_iommu *iommu, struct pasid_table *table, u8 bus, u8 devfn) domain_context_mapping_one() argument
2291 struct intel_iommu *iommu; global() member
2310 struct intel_iommu *iommu; domain_context_mapping() local
2334 struct intel_iommu *iommu = opaque; domain_context_mapped_cb() local
2341 struct intel_iommu *iommu; domain_context_mapped() local
2522 struct intel_iommu *iommu; domain_mapping() local
2551 domain_context_clear_one(struct intel_iommu *iommu, u8 bus, u8 devfn) domain_context_clear_one() argument
2647 domain_setup_first_level(struct intel_iommu *iommu, struct dmar_domain *domain, struct device *dev, u32 pasid) domain_setup_first_level() argument
2689 dmar_insert_one_dev_info(struct intel_iommu *iommu, int bus, int devfn, struct device *dev, struct dmar_domain *domain) dmar_insert_one_dev_info() argument
2897 struct intel_iommu *iommu; domain_add_dev_info() local
3025 intel_iommu_init_qi(struct intel_iommu *iommu) intel_iommu_init_qi() argument
3060 copy_context_table(struct intel_iommu *iommu, struct root_entry *old_re, struct context_entry **tbl, int bus, bool ext) copy_context_table() argument
3162 copy_translation_tables(struct intel_iommu *iommu) copy_translation_tables() argument
3247 struct intel_iommu *iommu = data; intel_vcmd_ioasid_alloc() local
3268 struct intel_iommu *iommu = data; intel_vcmd_ioasid_free() local
3283 register_pasid_allocator(struct intel_iommu *iommu) register_pasid_allocator() argument
3326 struct intel_iommu *iommu; init_dmars() local
3575 struct intel_iommu *iommu; __intel_map_single() local
3651 struct intel_iommu *iommu; intel_unmap() local
3782 struct intel_iommu *iommu; intel_map_sg() local
3877 struct intel_iommu *iommu; bounce_map_single() local
4212 struct intel_iommu *iommu = NULL; init_iommu_hw() local
4241 struct intel_iommu *iommu; iommu_flush_all() local
4254 struct intel_iommu *iommu = NULL; iommu_suspend() local
4294 struct intel_iommu *iommu = NULL; iommu_resume() local
4496 struct intel_iommu *iommu = dmaru->iommu; intel_iommu_add() local
4573 struct intel_iommu *iommu = dmaru->iommu; dmar_iommu_hotplug() local
4724 struct intel_iommu *iommu; intel_iommu_memory_notifier() local
4754 struct intel_iommu *iommu = g_iommus[i]; free_all_cpu_cached_iovas() local
4780 struct intel_iommu *iommu = NULL; intel_disable_iommus() local
4790 struct intel_iommu *iommu = NULL; intel_iommu_shutdown() local
4818 struct intel_iommu *iommu = dev_to_intel_iommu(dev); intel_iommu_show_version() local
4829 struct intel_iommu *iommu = dev_to_intel_iommu(dev); intel_iommu_show_address() local
4838 struct intel_iommu *iommu = dev_to_intel_iommu(dev); intel_iommu_show_cap() local
4847 struct intel_iommu *iommu = dev_to_intel_iommu(dev); intel_iommu_show_ecap() local
4856 struct intel_iommu *iommu = dev_to_intel_iommu(dev); intel_iommu_show_ndoms() local
4865 struct intel_iommu *iommu = dev_to_intel_iommu(dev); intel_iommu_show_ndoms_used() local
4972 struct intel_iommu *iommu; intel_iommu_init() local
5110 struct intel_iommu *iommu = opaque; domain_context_clear_one_cb() local
5122 domain_context_clear(struct intel_iommu *iommu, struct device *dev) domain_context_clear() argument
5133 struct intel_iommu *iommu; __dmar_remove_one_dev_info() local
5300 struct intel_iommu *iommu; aux_domain_add_dev() local
5362 struct intel_iommu *iommu; aux_domain_remove_dev() local
5386 struct intel_iommu *iommu; prepare_domain_attach_device() local
5534 struct intel_iommu *iommu; intel_iommu_sva_invalidate() local
5754 struct intel_iommu *iommu; scalable_mode_support() local
5772 struct intel_iommu *iommu; iommu_pasid_support() local
5790 struct intel_iommu *iommu; nested_mode_support() local
5817 struct intel_iommu *iommu; intel_iommu_probe_device() local
5831 struct intel_iommu *iommu; intel_iommu_release_device() local
5912 intel_iommu_enable_pasid(struct intel_iommu *iommu, struct device *dev) intel_iommu_enable_pasid() argument
5986 struct intel_iommu *iommu; intel_iommu_enable_auxd() local
[all...]
H A Dpasid.c15 #include <linux/intel-iommu.h>
16 #include <linux/iommu.h>
29 int vcmd_alloc_pasid(struct intel_iommu *iommu, u32 *pasid) in vcmd_alloc_pasid() argument
36 raw_spin_lock_irqsave(&iommu->register_lock, flags); in vcmd_alloc_pasid()
37 dmar_writeq(iommu->reg + DMAR_VCMD_REG, VCMD_CMD_ALLOC); in vcmd_alloc_pasid()
38 IOMMU_WAIT_OP(iommu, DMAR_VCRSP_REG, dmar_readq, in vcmd_alloc_pasid()
40 raw_spin_unlock_irqrestore(&iommu->register_lock, flags); in vcmd_alloc_pasid()
48 pr_info("IOMMU: %s: No PASID available\n", iommu->name); in vcmd_alloc_pasid()
54 iommu->name, status_code); in vcmd_alloc_pasid()
60 void vcmd_free_pasid(struct intel_iommu *iommu, u3 argument
467 pasid_cache_invalidation_with_pasid(struct intel_iommu *iommu, u16 did, u32 pasid) pasid_cache_invalidation_with_pasid() argument
482 devtlb_invalidation_with_pasid(struct intel_iommu *iommu, struct device *dev, u32 pasid) devtlb_invalidation_with_pasid() argument
508 intel_pasid_tear_down_entry(struct intel_iommu *iommu, struct device *dev, u32 pasid, bool fault_ignore) intel_pasid_tear_down_entry() argument
538 pasid_flush_caches(struct intel_iommu *iommu, struct pasid_entry *pte, u32 pasid, u16 did) pasid_flush_caches() argument
557 intel_pasid_setup_first_level(struct intel_iommu *iommu, struct device *dev, pgd_t *pgd, u32 pasid, u16 did, int flags) intel_pasid_setup_first_level() argument
615 iommu_skip_agaw(struct dmar_domain *domain, struct intel_iommu *iommu, struct dma_pte **pgd) iommu_skip_agaw() argument
633 intel_pasid_setup_second_level(struct intel_iommu *iommu, struct dmar_domain *domain, struct device *dev, u32 pasid) intel_pasid_setup_second_level() argument
695 intel_pasid_setup_pass_through(struct intel_iommu *iommu, struct dmar_domain *domain, struct device *dev, u32 pasid) intel_pasid_setup_pass_through() argument
728 intel_pasid_setup_bind_data(struct intel_iommu *iommu, struct pasid_entry *pte, struct iommu_gpasid_bind_data_vtd *pasid_data) intel_pasid_setup_bind_data() argument
783 intel_pasid_setup_nested(struct intel_iommu *iommu, struct device *dev, pgd_t *gpgd, u32 pasid, struct iommu_gpasid_bind_data_vtd *pasid_data, struct dmar_domain *domain, int addr_width) intel_pasid_setup_nested() argument
[all...]
/kernel/linux/linux-6.6/drivers/iommu/intel/
H A Dirq_remapping.c23 #include "iommu.h"
33 struct intel_iommu *iommu; member
40 struct intel_iommu *iommu; member
47 struct intel_iommu *iommu; member
74 * ->iommu->register_lock
83 static void iommu_disable_irq_remapping(struct intel_iommu *iommu);
87 static bool ir_pre_enabled(struct intel_iommu *iommu) in ir_pre_enabled() argument
89 return (iommu->flags & VTD_FLAG_IRQ_REMAP_PRE_ENABLED); in ir_pre_enabled()
92 static void clear_ir_pre_enabled(struct intel_iommu *iommu) in clear_ir_pre_enabled() argument
94 iommu in clear_ir_pre_enabled()
97 init_ir_status(struct intel_iommu *iommu) init_ir_status() argument
106 alloc_irte(struct intel_iommu *iommu, struct irq_2_iommu *irq_iommu, u16 count) alloc_irte() argument
146 qi_flush_iec(struct intel_iommu *iommu, int index, int mask) qi_flush_iec() argument
162 struct intel_iommu *iommu; modify_irte() local
233 struct intel_iommu *iommu; clear_entries() local
421 iommu_load_old_irte(struct intel_iommu *iommu) iommu_load_old_irte() argument
463 iommu_set_irq_remapping(struct intel_iommu *iommu, int mode) iommu_set_irq_remapping() argument
491 iommu_enable_irq_remapping(struct intel_iommu *iommu) iommu_enable_irq_remapping() argument
525 intel_setup_irq_remapping(struct intel_iommu *iommu) intel_setup_irq_remapping() argument
634 intel_teardown_irq_remapping(struct intel_iommu *iommu) intel_teardown_irq_remapping() argument
657 iommu_disable_irq_remapping(struct intel_iommu *iommu) iommu_disable_irq_remapping() argument
700 struct intel_iommu *iommu; intel_cleanup_irq_remapping() local
716 struct intel_iommu *iommu; intel_prepare_irq_remapping() local
790 struct intel_iommu *iommu; set_irq_posting_cap() local
816 struct intel_iommu *iommu; intel_enable_irq_remapping() local
844 ir_parse_one_hpet_scope(struct acpi_dmar_device_scope *scope, struct intel_iommu *iommu, struct acpi_dmar_hardware_unit *drhd) ir_parse_one_hpet_scope() argument
889 ir_parse_one_ioapic_scope(struct acpi_dmar_device_scope *scope, struct intel_iommu *iommu, struct acpi_dmar_hardware_unit *drhd) ir_parse_one_ioapic_scope() argument
934 ir_parse_ioapic_hpet_scope(struct acpi_dmar_header *header, struct intel_iommu *iommu) ir_parse_ioapic_hpet_scope() argument
958 ir_remove_ioapic_hpet_scope(struct intel_iommu *iommu) ir_remove_ioapic_hpet_scope() argument
978 struct intel_iommu *iommu; parse_ioapics_under_ir() local
1029 struct intel_iommu *iommu = NULL; disable_irq_remapping() local
1052 struct intel_iommu *iommu = NULL; reenable_irq_remapping() local
1313 struct intel_iommu *iommu = domain->host_data; intel_irq_remapping_alloc() local
1405 struct intel_iommu *iommu = NULL; intel_irq_remapping_select() local
1441 dmar_ir_add(struct dmar_drhd_unit *dmaru, struct intel_iommu *iommu) dmar_ir_add() argument
1481 struct intel_iommu *iommu = dmaru->iommu; dmar_ir_hotplug() local
[all...]
H A Ddmar.c28 #include <linux/iommu.h>
33 #include "iommu.h"
67 static void free_iommu(struct intel_iommu *iommu);
461 if (dmaru->iommu) in dmar_free_drhd()
462 free_iommu(dmaru->iommu); in dmar_free_drhd()
501 drhd->iommu->node = node; in dmar_parse_one_rhsa()
939 x86_init.iommu.iommu_init = intel_iommu_init; in detect_intel_iommu()
952 static void unmap_iommu(struct intel_iommu *iommu) in unmap_iommu() argument
954 iounmap(iommu->reg); in unmap_iommu()
955 release_mem_region(iommu in unmap_iommu()
966 map_iommu(struct intel_iommu *iommu, struct dmar_drhd_unit *drhd) map_iommu() argument
1040 struct intel_iommu *iommu; alloc_iommu() local
1166 free_iommu(struct intel_iommu *iommu) free_iommu() argument
1239 qi_dump_fault(struct intel_iommu *iommu, u32 fault) qi_dump_fault() argument
1270 qi_check_fault(struct intel_iommu *iommu, int index, int wait_index) qi_check_fault() argument
1346 qi_submit_sync(struct intel_iommu *iommu, struct qi_desc *desc, unsigned int count, unsigned long options) qi_submit_sync() argument
1469 qi_global_iec(struct intel_iommu *iommu) qi_global_iec() argument
1482 qi_flush_context(struct intel_iommu *iommu, u16 did, u16 sid, u8 fm, u64 type) qi_flush_context() argument
1496 qi_flush_iotlb(struct intel_iommu *iommu, u16 did, u64 addr, unsigned int size_order, u64 type) qi_flush_iotlb() argument
1520 qi_flush_dev_iotlb(struct intel_iommu *iommu, u16 sid, u16 pfsid, u16 qdep, u64 addr, unsigned mask) qi_flush_dev_iotlb() argument
1552 qi_flush_piotlb(struct intel_iommu *iommu, u16 did, u32 pasid, u64 addr, unsigned long npages, bool ih) qi_flush_piotlb() argument
1593 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
1645 qi_flush_pasid_cache(struct intel_iommu *iommu, u16 did, u64 granu, u32 pasid) qi_flush_pasid_cache() argument
1658 dmar_disable_qi(struct intel_iommu *iommu) dmar_disable_qi() argument
1693 __dmar_enable_qi(struct intel_iommu *iommu) __dmar_enable_qi() argument
1731 dmar_enable_qi(struct intel_iommu *iommu) dmar_enable_qi() argument
1895 dmar_msi_reg(struct intel_iommu *iommu, int irq) dmar_msi_reg() argument
1909 struct intel_iommu *iommu = irq_data_get_irq_handler_data(data); dmar_msi_unmask() local
1923 struct intel_iommu *iommu = irq_data_get_irq_handler_data(data); dmar_msi_mask() local
1937 struct intel_iommu *iommu = irq_get_handler_data(irq); dmar_msi_write() local
1950 struct intel_iommu *iommu = irq_get_handler_data(irq); dmar_msi_read() local
1961 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
2000 struct intel_iommu *iommu = dev_id; dmar_fault() local
2077 dmar_set_interrupt(struct intel_iommu *iommu) dmar_set_interrupt() argument
2104 struct intel_iommu *iommu; enable_drhd_fault_handling() local
2133 dmar_reenable_qi(struct intel_iommu *iommu) dmar_reenable_qi() argument
[all...]
H A Dcap_audit.c3 * 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) in cap_audit_hotplug() argument
81 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, cap, pi_support, CAP_PI_MASK); in cap_audit_hotplug()
82 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, ecap, eim_support, ECAP_EIM_MASK); in cap_audit_hotplug()
86 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, cap, fl5lp_support, CAP_FL5LP_MASK); in cap_audit_hotplug()
87 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, cap, fl1gp_support, CAP_FL1GP_MASK); in cap_audit_hotplug()
88 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, cap, read_drain, CAP_RD_MASK); in cap_audit_hotplug()
89 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, cap, write_drain, CAP_WD_MASK); in cap_audit_hotplug()
90 CHECK_FEATURE_MISMATCH_HOTPLUG(iommu, ca in cap_audit_hotplug()
141 cap_audit_static(struct intel_iommu *iommu, enum cap_audit_type type) cap_audit_static() argument
178 intel_cap_audit(enum cap_audit_type type, struct intel_iommu *iommu) intel_cap_audit() argument
[all...]
H A Dsvm.c22 #include "iommu.h"
25 #include "../iommu-sva.h"
64 int intel_svm_enable_prq(struct intel_iommu *iommu) in intel_svm_enable_prq() argument
73 iommu->name); in intel_svm_enable_prq()
76 iommu->prq = page_address(pages); in intel_svm_enable_prq()
78 irq = dmar_alloc_hwirq(IOMMU_IRQ_ID_OFFSET_PRQ + iommu->seq_id, iommu->node, iommu); in intel_svm_enable_prq()
81 iommu->name); in intel_svm_enable_prq()
85 iommu in intel_svm_enable_prq()
127 intel_svm_finish_prq(struct intel_iommu *iommu) intel_svm_finish_prq() argument
150 intel_svm_check(struct intel_iommu *iommu) intel_svm_check() argument
318 intel_svm_bind_mm(struct intel_iommu *iommu, struct device *dev, struct mm_struct *mm) intel_svm_bind_mm() argument
395 struct intel_iommu *iommu; intel_svm_remove_dev_pasid() local
483 struct intel_iommu *iommu; intel_drain_pasid_prq() local
569 intel_svm_prq_report(struct intel_iommu *iommu, struct device *dev, struct page_req_dsc *desc) intel_svm_prq_report() argument
613 handle_bad_prq_event(struct intel_iommu *iommu, struct page_req_dsc *req, int result) handle_bad_prq_event() argument
654 struct intel_iommu *iommu = d; prq_event_thread() local
754 struct intel_iommu *iommu; intel_svm_page_response() local
824 struct intel_iommu *iommu = info->iommu; intel_svm_set_dev_pasid() local
[all...]
H A Dpasid.c15 #include <linux/iommu.h>
21 #include "iommu.h"
29 int vcmd_alloc_pasid(struct intel_iommu *iommu, u32 *pasid) in vcmd_alloc_pasid() argument
36 raw_spin_lock_irqsave(&iommu->register_lock, flags); in vcmd_alloc_pasid()
37 dmar_writeq(iommu->reg + DMAR_VCMD_REG, VCMD_CMD_ALLOC); in vcmd_alloc_pasid()
38 IOMMU_WAIT_OP(iommu, DMAR_VCRSP_REG, dmar_readq, in vcmd_alloc_pasid()
40 raw_spin_unlock_irqrestore(&iommu->register_lock, flags); in vcmd_alloc_pasid()
48 pr_info("IOMMU: %s: No PASID available\n", iommu->name); in vcmd_alloc_pasid()
54 iommu->name, status_code); in vcmd_alloc_pasid()
60 void vcmd_free_pasid(struct intel_iommu *iommu, u3 argument
406 pasid_cache_invalidation_with_pasid(struct intel_iommu *iommu, u16 did, u32 pasid) pasid_cache_invalidation_with_pasid() argument
421 devtlb_invalidation_with_pasid(struct intel_iommu *iommu, struct device *dev, u32 pasid) devtlb_invalidation_with_pasid() argument
450 intel_pasid_tear_down_entry(struct intel_iommu *iommu, struct device *dev, u32 pasid, bool fault_ignore) intel_pasid_tear_down_entry() argument
487 pasid_flush_caches(struct intel_iommu *iommu, struct pasid_entry *pte, u32 pasid, u16 did) pasid_flush_caches() argument
506 intel_pasid_setup_first_level(struct intel_iommu *iommu, struct device *dev, pgd_t *pgd, u32 pasid, u16 did, int flags) intel_pasid_setup_first_level() argument
566 iommu_skip_agaw(struct dmar_domain *domain, struct intel_iommu *iommu, struct dma_pte **pgd) iommu_skip_agaw() argument
584 intel_pasid_setup_second_level(struct intel_iommu *iommu, struct dmar_domain *domain, struct device *dev, u32 pasid) intel_pasid_setup_second_level() argument
645 intel_pasid_setup_pass_through(struct intel_iommu *iommu, struct dmar_domain *domain, struct device *dev, u32 pasid) intel_pasid_setup_pass_through() argument
681 intel_pasid_setup_page_snoop_control(struct intel_iommu *iommu, struct device *dev, u32 pasid) intel_pasid_setup_page_snoop_control() argument
[all...]
H A Diommu.c27 #include "iommu.h"
28 #include "../dma-iommu.h"
30 #include "../iommu-sva.h"
223 static inline bool context_copied(struct intel_iommu *iommu, u8 bus, u8 devfn) in context_copied() argument
225 if (!iommu->copied_tables) in context_copied()
228 return test_bit(((long)bus << 8) | devfn, iommu->copied_tables); in context_copied()
232 set_context_copied(struct intel_iommu *iommu, u8 bus, u8 devfn) in set_context_copied() argument
234 set_bit(((long)bus << 8) | devfn, iommu->copied_tables); in set_context_copied()
238 clear_context_copied(struct intel_iommu *iommu, u8 bus, u8 devfn) in clear_context_copied() argument
240 clear_bit(((long)bus << 8) | devfn, iommu in clear_context_copied()
273 struct intel_iommu *iommu; /* the corresponding iommu */ global() member
304 translation_pre_enabled(struct intel_iommu *iommu) translation_pre_enabled() argument
309 clear_translation_pre_enabled(struct intel_iommu *iommu) clear_translation_pre_enabled() argument
314 init_translation_status(struct intel_iommu *iommu) init_translation_status() argument
404 __iommu_calculate_sagaw(struct intel_iommu *iommu) __iommu_calculate_sagaw() argument
422 __iommu_calculate_agaw(struct intel_iommu *iommu, int max_gaw) __iommu_calculate_agaw() argument
439 iommu_calculate_max_sagaw(struct intel_iommu *iommu) iommu_calculate_max_sagaw() argument
449 iommu_calculate_agaw(struct intel_iommu *iommu) iommu_calculate_agaw() argument
454 iommu_paging_structure_coherency(struct intel_iommu *iommu) iommu_paging_structure_coherency() argument
464 struct intel_iommu *iommu; domain_update_iommu_coherency() local
494 struct intel_iommu *iommu; domain_update_iommu_superpage() local
591 iommu_context_addr(struct intel_iommu *iommu, u8 bus, u8 devfn, int alloc) iommu_context_addr() argument
689 iommu_is_dummy(struct intel_iommu *iommu, struct device *dev) iommu_is_dummy() argument
710 struct intel_iommu *iommu; device_to_iommu() local
783 free_context_table(struct intel_iommu *iommu) free_context_table() argument
809 pgtable_walk(struct intel_iommu *iommu, unsigned long pfn, u8 bus, u8 devfn, struct dma_pte *parent, int level) pgtable_walk() argument
833 dmar_fault_dump_ptes(struct intel_iommu *iommu, u16 source_id, unsigned long long addr, u32 pasid) dmar_fault_dump_ptes() argument
1189 iommu_alloc_root_entry(struct intel_iommu *iommu) iommu_alloc_root_entry() argument
1206 iommu_set_root_entry(struct intel_iommu *iommu) iommu_set_root_entry() argument
1240 iommu_flush_write_buffer(struct intel_iommu *iommu) iommu_flush_write_buffer() argument
1259 __iommu_flush_context(struct intel_iommu *iommu, u16 did, u16 source_id, u8 function_mask, u64 type) __iommu_flush_context() argument
1295 __iommu_flush_iotlb(struct intel_iommu *iommu, u16 did, u64 addr, unsigned int size_order, u64 type) __iommu_flush_iotlb() argument
1346 domain_lookup_dev_info(struct dmar_domain *domain, struct intel_iommu *iommu, u8 bus, u8 devfn) domain_lookup_dev_info() argument
1498 domain_flush_pasid_iotlb(struct intel_iommu *iommu, struct dmar_domain *domain, u64 addr, unsigned long npages, bool ih) domain_flush_pasid_iotlb() argument
1515 iommu_flush_iotlb_psi(struct intel_iommu *iommu, struct dmar_domain *domain, unsigned long pfn, unsigned int pages, int ih, int map) iommu_flush_iotlb_psi() argument
1577 __mapping_notify_one(struct intel_iommu *iommu, struct dmar_domain *domain, unsigned long pfn, unsigned int pages) __mapping_notify_one() argument
1598 struct intel_iommu *iommu = info->iommu; intel_flush_iotlb_all() local
1612 iommu_disable_protect_mem_regions(struct intel_iommu *iommu) iommu_disable_protect_mem_regions() argument
1632 iommu_enable_translation(struct intel_iommu *iommu) iommu_enable_translation() argument
1648 iommu_disable_translation(struct intel_iommu *iommu) iommu_disable_translation() argument
1668 iommu_init_domains(struct intel_iommu *iommu) iommu_init_domains() argument
1703 disable_dmar_iommu(struct intel_iommu *iommu) disable_dmar_iommu() argument
1720 free_dmar_iommu(struct intel_iommu *iommu) free_dmar_iommu() argument
1781 domain_attach_iommu(struct dmar_domain *domain, struct intel_iommu *iommu) domain_attach_iommu() argument
1831 domain_detach_iommu(struct dmar_domain *domain, struct intel_iommu *iommu) domain_detach_iommu() argument
1926 domain_context_mapping_one(struct dmar_domain *domain, struct intel_iommu *iommu, struct pasid_table *table, u8 bus, u8 devfn) domain_context_mapping_one() argument
2069 struct intel_iommu *iommu; global() member
2088 struct intel_iommu *iommu; domain_context_mapping() local
2287 struct intel_iommu *iommu = info->iommu; domain_context_clear_one() local
2331 domain_setup_first_level(struct intel_iommu *iommu, struct dmar_domain *domain, struct device *dev, u32 pasid) domain_setup_first_level() argument
2449 struct intel_iommu *iommu; dmar_domain_attach_device() local
2553 intel_iommu_init_qi(struct intel_iommu *iommu) intel_iommu_init_qi() argument
2588 copy_context_table(struct intel_iommu *iommu, struct root_entry *old_re, struct context_entry **tbl, int bus, bool ext) copy_context_table() argument
2672 copy_translation_tables(struct intel_iommu *iommu) copy_translation_tables() argument
2760 struct intel_iommu *iommu; init_dmars() local
2954 struct intel_iommu *iommu = NULL; init_iommu_hw() local
2988 struct intel_iommu *iommu; iommu_flush_all() local
3001 struct intel_iommu *iommu = NULL; iommu_suspend() local
3028 struct intel_iommu *iommu = NULL; iommu_resume() local
3278 struct intel_iommu *iommu = dmaru->iommu; intel_iommu_add() local
3350 struct intel_iommu *iommu = dmaru->iommu; dmar_iommu_hotplug() local
3414 dmar_ats_supported(struct pci_dev *dev, struct intel_iommu *iommu) dmar_ats_supported() argument
3562 struct intel_iommu *iommu; intel_iommu_memory_notifier() local
3588 struct intel_iommu *iommu = NULL; intel_disable_iommus() local
3598 struct intel_iommu *iommu = NULL; intel_iommu_shutdown() local
3625 struct intel_iommu *iommu = dev_to_intel_iommu(dev); version_show() local
3635 struct intel_iommu *iommu = dev_to_intel_iommu(dev); address_show() local
3643 struct intel_iommu *iommu = dev_to_intel_iommu(dev); cap_show() local
3651 struct intel_iommu *iommu = dev_to_intel_iommu(dev); ecap_show() local
3659 struct intel_iommu *iommu = dev_to_intel_iommu(dev); domains_supported_show() local
3667 struct intel_iommu *iommu = dev_to_intel_iommu(dev); domains_used_show() local
3781 struct intel_iommu *iommu; intel_iommu_init() local
3939 struct intel_iommu *iommu = info->iommu; dmar_remove_one_dev_info() local
3967 struct intel_iommu *iommu = info->iommu; device_block_translation() local
4074 struct intel_iommu *iommu; prepare_domain_attach_device() local
4348 struct intel_iommu *iommu; intel_iommu_probe_device() local
4505 struct intel_iommu *iommu; intel_iommu_enable_sva() local
4541 struct intel_iommu *iommu; intel_iommu_enable_iopf() local
4588 struct intel_iommu *iommu = info->iommu; intel_iommu_disable_iopf() local
4684 struct intel_iommu *iommu = device_to_iommu(dev, NULL, NULL); intel_iommu_remove_dev_pasid() local
4728 struct intel_iommu *iommu = info->iommu; intel_iommu_set_dev_pasid() local
4780 struct intel_iommu *iommu = info->iommu; intel_iommu_hw_info() local
5074 ecmd_submit_sync(struct intel_iommu *iommu, u8 ecmd, u64 oa, u64 ob) ecmd_submit_sync() argument
[all...]
/kernel/linux/linux-5.10/drivers/iommu/loongson/
H A Diommu.c17 #include <linux/iommu.h>
27 #include "iommu.h"
97 static void iommu_write_regl(loongson_iommu *iommu, unsigned long off, u32 val) in iommu_write_regl() argument
99 *(u32 *)(iommu->membase + off) = val; in iommu_write_regl()
103 static u32 iommu_read_regl(loongson_iommu *iommu, unsigned long off) in iommu_read_regl() argument
107 val = *(u32 *)(iommu->membase + off); in iommu_read_regl()
112 static void iommu_translate_disable(loongson_iommu *iommu) in iommu_translate_disable() argument
116 if (iommu == NULL) { in iommu_translate_disable()
117 pr_err("%s iommu is NULL", __func__); in iommu_translate_disable()
121 val = iommu_read_regl(iommu, LA_IOMMU_EIVD in iommu_translate_disable()
133 iommu_translate_enable(loongson_iommu *iommu) iommu_translate_enable() argument
173 has_dom(loongson_iommu *iommu) has_dom() argument
190 loongson_iommu *iommu; update_dev_table() local
262 flush_iotlb(loongson_iommu *iommu) flush_iotlb() argument
283 flush_pgtable_is_busy(loongson_iommu *iommu) flush_pgtable_is_busy() argument
297 __iommu_flush_iotlb_all(loongson_iommu *iommu) __iommu_flush_iotlb_all() argument
320 priv_flush_iotlb_pde(loongson_iommu *iommu) priv_flush_iotlb_pde() argument
386 domain_id_alloc(loongson_iommu *iommu) domain_id_alloc() argument
407 domain_id_free(loongson_iommu *iommu, int id) domain_id_free() argument
424 add_domain_to_list(loongson_iommu *iommu, dom_info *priv) add_domain_to_list() argument
431 del_domain_from_list(loongson_iommu *iommu, dom_info *priv) del_domain_from_list() argument
438 iommu_zalloc_page(loongson_iommu *iommu) iommu_zalloc_page() argument
479 iommu_free_page(loongson_iommu *iommu, spt_entry *shadw_entry) iommu_free_page() argument
504 loongson_iommu *iommu = iommu_entry->iommu; free_pagetable_one_level() local
528 loongson_iommu *iommu; free_pagetable() local
594 loongson_iommu *iommu = NULL; domain_deattach_iommu() local
633 loongson_iommu *iommu = NULL; loongson_iommu_domain_free() local
677 loongson_iommu *iommu = NULL; find_iommu_by_dev() local
702 loongson_iommu *iommu = NULL; iommu_init_device() local
790 get_iommu_entry(dom_info *priv, loongson_iommu *iommu) get_iommu_entry() argument
806 domain_attach_iommu(dom_info *priv, loongson_iommu *iommu) domain_attach_iommu() argument
862 iommu_get_devdata(dom_info *info, loongson_iommu *iommu, unsigned long bdf) iommu_get_devdata() argument
893 loongson_iommu *iommu; loongson_iommu_attach_dev() local
949 loongson_iommu *iommu; loongson_iommu_detach_dev() local
1016 _iommu_alloc_ptable(loongson_iommu *iommu, unsigned long *psentry, unsigned long *phwentry) _iommu_alloc_ptable() argument
1041 iommu_ptw_map(loongson_iommu *iommu, spt_entry *shd_entry, unsigned long start, unsigned long end, phys_addr_t pa, int level) iommu_ptw_map() argument
1103 loongson_iommu *iommu; dev_map_page() local
1121 iommu_ptw_unmap(loongson_iommu *iommu, spt_entry *shd_entry, unsigned long start, unsigned long end, int level) iommu_ptw_unmap() argument
1188 loongson_iommu *iommu; iommu_unmap_page() local
1258 loongson_iommu *iommu; loongson_iommu_iova_to_pa() local
1321 loongson_iommu *iommu; loongson_iommu_flush_iotlb_all() local
1359 loongson_iommu *iommu = NULL; loongarch_get_iommu() local
1380 struct loongson_iommu *iommu = NULL; loongson_iommu_probe() local
1455 struct loongson_iommu *iommu = NULL; loongson_iommu_remove() local
1520 set_iommu_for_device(loongson_iommu *iommu, u16 devid) set_iommu_for_device() argument
1654 init_iommu_from_acpi(loongson_iommu *iommu, struct ivhd_header *h) init_iommu_from_acpi() argument
1725 init_iommu_one(loongson_iommu *iommu, struct ivhd_header *h) init_iommu_one() argument
1773 loongson_iommu *iommu; init_iommu_all() local
1897 loongson_iommu *iommu; loongson_iommu_ivrs_init_stub() local
1944 loongson_iommu *iommu = NULL; free_iommu_rlookup_entry() local
[all...]
/kernel/linux/linux-6.6/drivers/vfio/
H A Dvfio_iommu_type1.c28 #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, in vfio_find_dma() argument
168 struct rb_node *node = iommu->dma_list.rb_node; in vfio_find_dma()
184 static struct rb_node *vfio_find_dma_first_node(struct vfio_iommu *iommu, in vfio_find_dma_first_node() argument
188 struct rb_node *node = iommu->dma_list.rb_node; in vfio_find_dma_first_node()
209 static void vfio_link_dma(struct vfio_iommu *iommu, struct vfio_dma *new) in vfio_link_dma() argument
211 struct rb_node **link = &iommu->dma_list.rb_node, *parent = NULL; in vfio_link_dma()
225 rb_insert_color(&new->node, &iommu->dma_list); in vfio_link_dma()
228 static void vfio_unlink_dma(struct vfio_iommu *iommu, struc argument
272 vfio_iommu_populate_bitmap_full(struct vfio_iommu *iommu) vfio_iommu_populate_bitmap_full() argument
284 vfio_dma_bitmap_alloc_all(struct vfio_iommu *iommu, size_t pgsize) vfio_dma_bitmap_alloc_all() argument
309 vfio_dma_bitmap_free_all(struct vfio_iommu *iommu) vfio_dma_bitmap_free_all() argument
802 struct vfio_iommu *iommu = iommu_data; vfio_iommu_type1_pin_pages() local
919 struct vfio_iommu *iommu = iommu_data; vfio_iommu_type1_unpin_pages() local
1037 vfio_unmap_unpin(struct vfio_iommu *iommu, struct vfio_dma *dma, bool do_accounting) vfio_unmap_unpin() argument
1121 vfio_remove_dma(struct vfio_iommu *iommu, struct vfio_dma *dma) vfio_remove_dma() argument
1135 vfio_update_pgsize_bitmap(struct vfio_iommu *iommu) vfio_update_pgsize_bitmap() argument
1158 update_user_bitmap(u64 __user *bitmap, struct vfio_iommu *iommu, struct vfio_dma *dma, dma_addr_t base_iova, size_t pgsize) update_user_bitmap() argument
1195 vfio_iova_dirty_bitmap(u64 __user *bitmap, struct vfio_iommu *iommu, dma_addr_t iova, size_t size, size_t pgsize) vfio_iova_dirty_bitmap() argument
1255 vfio_notify_dma_unmap(struct vfio_iommu *iommu, struct vfio_dma *dma) vfio_notify_dma_unmap() argument
1279 vfio_dma_do_unmap(struct vfio_iommu *iommu, struct vfio_iommu_type1_dma_unmap *unmap, struct vfio_bitmap *bitmap) vfio_dma_do_unmap() argument
1430 vfio_iommu_map(struct vfio_iommu *iommu, dma_addr_t iova, unsigned long pfn, long npage, int prot) vfio_iommu_map() argument
1457 vfio_pin_map_dma(struct vfio_iommu *iommu, struct vfio_dma *dma, size_t map_size) vfio_pin_map_dma() argument
1507 vfio_iommu_iova_dma_valid(struct vfio_iommu *iommu, dma_addr_t start, dma_addr_t end) vfio_iommu_iova_dma_valid() argument
1557 vfio_dma_do_map(struct vfio_iommu *iommu, struct vfio_iommu_type1_dma_map *map) vfio_dma_do_map() argument
1677 vfio_iommu_replay(struct vfio_iommu *iommu, struct vfio_domain *domain) vfio_iommu_replay() argument
1877 vfio_iommu_find_iommu_group(struct vfio_iommu *iommu, struct iommu_group *iommu_group) vfio_iommu_find_iommu_group() argument
1951 vfio_iommu_aper_conflict(struct vfio_iommu *iommu, dma_addr_t start, dma_addr_t end) vfio_iommu_aper_conflict() argument
2025 vfio_iommu_resv_conflict(struct vfio_iommu *iommu, struct list_head *resv_regions) vfio_iommu_resv_conflict() argument
2114 vfio_iommu_iova_get_copy(struct vfio_iommu *iommu, struct list_head *iova_copy) vfio_iommu_iova_get_copy() argument
2134 vfio_iommu_iova_insert_copy(struct vfio_iommu *iommu, struct list_head *iova_copy) vfio_iommu_iova_insert_copy() argument
2155 struct vfio_iommu *iommu = iommu_data; vfio_iommu_type1_attach_group() local
2351 vfio_iommu_unmap_unpin_all(struct vfio_iommu *iommu) vfio_iommu_unmap_unpin_all() argument
2359 vfio_iommu_unmap_unpin_reaccount(struct vfio_iommu *iommu) vfio_iommu_unmap_unpin_reaccount() argument
2387 vfio_iommu_aper_expand(struct vfio_iommu *iommu, struct list_head *iova_copy) vfio_iommu_aper_expand() argument
2420 vfio_iommu_resv_refresh(struct vfio_iommu *iommu, struct list_head *iova_copy) vfio_iommu_resv_refresh() argument
2464 struct vfio_iommu *iommu = iommu_data; vfio_iommu_type1_detach_group() local
2548 struct vfio_iommu *iommu; vfio_iommu_type1_open() local
2597 struct vfio_iommu *iommu = iommu_data; vfio_iommu_type1_release() local
2621 vfio_domains_have_enforce_cache_coherency(struct vfio_iommu *iommu) vfio_domains_have_enforce_cache_coherency() argument
2638 vfio_iommu_has_emulated(struct vfio_iommu *iommu) vfio_iommu_has_emulated() argument
2648 vfio_iommu_type1_check_extension(struct vfio_iommu *iommu, unsigned long arg) vfio_iommu_type1_check_extension() argument
2693 vfio_iommu_iova_build_caps(struct vfio_iommu *iommu, struct vfio_info_cap *caps) vfio_iommu_iova_build_caps() argument
2732 vfio_iommu_migration_build_caps(struct vfio_iommu *iommu, struct vfio_info_cap *caps) vfio_iommu_migration_build_caps() argument
2748 vfio_iommu_dma_avail_build_caps(struct vfio_iommu *iommu, struct vfio_info_cap *caps) vfio_iommu_dma_avail_build_caps() argument
2762 vfio_iommu_type1_get_info(struct vfio_iommu *iommu, unsigned long arg) vfio_iommu_type1_get_info() argument
2821 vfio_iommu_type1_map_dma(struct vfio_iommu *iommu, unsigned long arg) vfio_iommu_type1_map_dma() argument
2840 vfio_iommu_type1_unmap_dma(struct vfio_iommu *iommu, unsigned long arg) vfio_iommu_type1_unmap_dma() argument
2893 vfio_iommu_type1_dirty_pages(struct vfio_iommu *iommu, unsigned long arg) vfio_iommu_type1_dirty_pages() argument
3000 struct vfio_iommu *iommu = iommu_data; vfio_iommu_type1_ioctl() local
3021 struct vfio_iommu *iommu = iommu_data; vfio_iommu_type1_register_device() local
3042 struct vfio_iommu *iommu = iommu_data; vfio_iommu_type1_unregister_device() local
3054 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) vfio_iommu_type1_dma_rw_chunk() argument
3117 struct vfio_iommu *iommu = iommu_data; vfio_iommu_type1_dma_rw() local
3150 struct vfio_iommu *iommu = iommu_data; vfio_iommu_type1_group_iommu_domain() local
[all...]

Completed in 34 milliseconds

12345678910>>...23