/kernel/linux/linux-6.6/drivers/iommu/amd/ |
H A D | init.c | 20 #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 D | sun50i-iommu.c | 14 #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 D | rockchip-iommu.c | 17 #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 D | msm_iommu.c | 18 #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 D | init.c | 19 #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 D | sun50i-iommu.c | 10 #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 D | rockchip-iommu.c | 13 #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 D | msm_iommu.c | 18 #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 D | iommu-sysfs.c | 10 #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 D | iommu-common.c | 4 * 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 D | iommu.c | 2 /* 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 D | iommu-common.c | 4 * 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 D | iommu.c | 2 /* 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 D | irq_remapping.c | 13 #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 D | dmar.c | 22 #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 D | iommu.c | 33 #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 D | pasid.c | 15 #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 D | irq_remapping.c | 23 #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 D | dmar.c | 28 #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 D | cap_audit.c | 3 * 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 D | svm.c | 22 #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 D | pasid.c | 15 #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 D | iommu.c | 27 #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 D | iommu.c | 17 #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 D | vfio_iommu_type1.c | 28 #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...] |