| /kernel/linux/linux-5.10/drivers/iommu/amd/ |
| D | init.c | 267 bool translation_pre_enabled(struct amd_iommu *iommu) in translation_pre_enabled() 273 static void clear_translation_pre_enabled(struct amd_iommu *iommu) in clear_translation_pre_enabled() 278 static void init_translation_status(struct amd_iommu *iommu) in init_translation_status() 310 struct amd_iommu *iommu; in check_feature_on_all_iommus() local 327 static void __init early_iommu_features_init(struct amd_iommu *iommu, in early_iommu_features_init() 336 static u32 iommu_read_l1(struct amd_iommu *iommu, u16 l1, u8 address) in iommu_read_l1() 345 static void iommu_write_l1(struct amd_iommu *iommu, u16 l1, u8 address, u32 val) in iommu_write_l1() 352 static u32 iommu_read_l2(struct amd_iommu *iommu, u8 address) in iommu_read_l2() 361 static void iommu_write_l2(struct amd_iommu *iommu, u8 address, u32 val) in iommu_write_l2() 380 static void iommu_set_exclusion_range(struct amd_iommu *iommu) in iommu_set_exclusion_range() [all …]
|
| /kernel/linux/linux-6.6/arch/sparc/include/asm/ |
| D | iommu_64.h | 55 struct iommu { struct 56 struct iommu_map_table tbl; argument 61 unsigned long iommu_control; argument 62 unsigned long iommu_tsbbase; argument 63 unsigned long iommu_flush; argument 64 unsigned long iommu_flushinv; argument 65 unsigned long iommu_tags; argument 66 unsigned long iommu_ctxflush; argument 89 int iommu_table_init(struct iommu *iommu, int tsbsize, argument
|
| /kernel/linux/linux-5.10/arch/sparc/include/asm/ |
| D | iommu_64.h | 55 struct iommu { struct 56 struct iommu_map_table tbl; argument 61 unsigned long iommu_control; argument 62 unsigned long iommu_tsbbase; argument 63 unsigned long iommu_flush; argument 64 unsigned long iommu_flushinv; argument 65 unsigned long iommu_tags; argument 66 unsigned long iommu_ctxflush; argument 89 int iommu_table_init(struct iommu *iommu, int tsbsize, argument
|
| /kernel/linux/linux-6.6/drivers/iommu/amd/ |
| D | init.c | 239 bool translation_pre_enabled(struct amd_iommu *iommu) in translation_pre_enabled() 244 static void clear_translation_pre_enabled(struct amd_iommu *iommu) in clear_translation_pre_enabled() 249 static void init_translation_status(struct amd_iommu *iommu) in init_translation_status() 277 struct amd_iommu *iommu; in get_global_efr() local 322 static void __init early_iommu_features_init(struct amd_iommu *iommu, in early_iommu_features_init() 335 static u32 iommu_read_l1(struct amd_iommu *iommu, u16 l1, u8 address) in iommu_read_l1() 344 static void iommu_write_l1(struct amd_iommu *iommu, u16 l1, u8 address, u32 val) in iommu_write_l1() 351 static u32 iommu_read_l2(struct amd_iommu *iommu, u8 address) in iommu_read_l2() 360 static void iommu_write_l2(struct amd_iommu *iommu, u8 address, u32 val) in iommu_write_l2() 379 static void iommu_set_exclusion_range(struct amd_iommu *iommu) in iommu_set_exclusion_range() [all …]
|
| D | iommu.c | 122 struct dev_table_entry *get_dev_table(struct amd_iommu *iommu) in get_dev_table() 152 void amd_iommu_set_rlookup_table(struct amd_iommu *iommu, u16 devid) in amd_iommu_set_rlookup_table() 185 static struct iommu_dev_data *alloc_dev_data(struct amd_iommu *iommu, u16 devid) in alloc_dev_data() 202 static struct iommu_dev_data *search_dev_data(struct amd_iommu *iommu, u16 devid) in search_dev_data() 222 struct amd_iommu *iommu; in clone_alias() local 242 static void clone_aliases(struct amd_iommu *iommu, struct device *dev) in clone_aliases() 260 static void setup_aliases(struct amd_iommu *iommu, struct device *dev) in setup_aliases() 282 static struct iommu_dev_data *find_dev_data(struct amd_iommu *iommu, u16 devid) in find_dev_data() 352 struct amd_iommu *iommu; in check_device() local 375 static int iommu_init_device(struct amd_iommu *iommu, struct device *dev) in iommu_init_device() [all …]
|
| /kernel/linux/linux-5.10/drivers/iommu/intel/ |
| D | irq_remapping.c | 33 struct intel_iommu *iommu; member 40 struct intel_iommu *iommu; member 47 struct intel_iommu *iommu; member 86 static bool ir_pre_enabled(struct intel_iommu *iommu) in ir_pre_enabled() 91 static void clear_ir_pre_enabled(struct intel_iommu *iommu) in clear_ir_pre_enabled() 96 static void init_ir_status(struct intel_iommu *iommu) in init_ir_status() 105 static int alloc_irte(struct intel_iommu *iommu, in alloc_irte() 145 static int qi_flush_iec(struct intel_iommu *iommu, int index, int mask) in qi_flush_iec() 161 struct intel_iommu *iommu; in modify_irte() local 231 struct intel_iommu *iommu = map_ioapic_to_iommu(apic); in map_ioapic_to_ir() local [all …]
|
| D | iommu.c | 414 static bool translation_pre_enabled(struct intel_iommu *iommu) in translation_pre_enabled() 419 static void clear_translation_pre_enabled(struct intel_iommu *iommu) in clear_translation_pre_enabled() 424 static void init_translation_status(struct intel_iommu *iommu) in init_translation_status() 479 static struct dmar_domain* get_iommu_domain(struct intel_iommu *iommu, u16 did) in get_iommu_domain() 491 static void set_iommu_domain(struct intel_iommu *iommu, u16 did, in set_iommu_domain() 568 static unsigned long __iommu_calculate_sagaw(struct intel_iommu *iommu) in __iommu_calculate_sagaw() 586 static int __iommu_calculate_agaw(struct intel_iommu *iommu, int max_gaw) in __iommu_calculate_agaw() 603 int iommu_calculate_max_sagaw(struct intel_iommu *iommu) in iommu_calculate_max_sagaw() 613 int iommu_calculate_agaw(struct intel_iommu *iommu) in iommu_calculate_agaw() 636 static inline bool iommu_paging_structure_coherency(struct intel_iommu *iommu) in iommu_paging_structure_coherency() [all …]
|
| D | dmar.c | 948 static void unmap_iommu(struct intel_iommu *iommu) in unmap_iommu() 962 static int map_iommu(struct intel_iommu *iommu, u64 phys_addr) in map_iommu() 1025 static int dmar_alloc_seq_id(struct intel_iommu *iommu) in dmar_alloc_seq_id() 1039 static void dmar_free_seq_id(struct intel_iommu *iommu) in dmar_free_seq_id() 1049 struct intel_iommu *iommu; in alloc_iommu() local 1160 static void free_iommu(struct intel_iommu *iommu) in free_iommu() 1204 static int qi_check_fault(struct intel_iommu *iommu, int index, int wait_index) in qi_check_fault() 1277 int qi_submit_sync(struct intel_iommu *iommu, struct qi_desc *desc, in qi_submit_sync() 1368 void qi_global_iec(struct intel_iommu *iommu) in qi_global_iec() 1381 void qi_flush_context(struct intel_iommu *iommu, u16 did, u16 sid, u8 fm, in qi_flush_context() [all …]
|
| /kernel/linux/linux-6.6/drivers/iommu/intel/ |
| D | irq_remapping.c | 33 struct intel_iommu *iommu; member 40 struct intel_iommu *iommu; member 47 struct intel_iommu *iommu; member 87 static bool ir_pre_enabled(struct intel_iommu *iommu) in ir_pre_enabled() 92 static void clear_ir_pre_enabled(struct intel_iommu *iommu) in clear_ir_pre_enabled() 97 static void init_ir_status(struct intel_iommu *iommu) in init_ir_status() 106 static int alloc_irte(struct intel_iommu *iommu, in alloc_irte() 146 static int qi_flush_iec(struct intel_iommu *iommu, int index, int mask) in qi_flush_iec() 162 struct intel_iommu *iommu; in modify_irte() local 233 struct intel_iommu *iommu; in clear_entries() local [all …]
|
| D | iommu.c | 223 static inline bool context_copied(struct intel_iommu *iommu, u8 bus, u8 devfn) in context_copied() 232 set_context_copied(struct intel_iommu *iommu, u8 bus, u8 devfn) in set_context_copied() 238 clear_context_copied(struct intel_iommu *iommu, u8 bus, u8 devfn) in clear_context_copied() 273 struct intel_iommu *iommu; /* the corresponding iommu */ member 304 static bool translation_pre_enabled(struct intel_iommu *iommu) in translation_pre_enabled() 309 static void clear_translation_pre_enabled(struct intel_iommu *iommu) in clear_translation_pre_enabled() 314 static void init_translation_status(struct intel_iommu *iommu) in init_translation_status() 404 static unsigned long __iommu_calculate_sagaw(struct intel_iommu *iommu) in __iommu_calculate_sagaw() 422 static int __iommu_calculate_agaw(struct intel_iommu *iommu, int max_gaw) in __iommu_calculate_agaw() 439 int iommu_calculate_max_sagaw(struct intel_iommu *iommu) in iommu_calculate_max_sagaw() [all …]
|
| D | perf.c | 18 bool dmar_latency_enabled(struct intel_iommu *iommu, enum latency_type type) in dmar_latency_enabled() 25 int dmar_latency_enable(struct intel_iommu *iommu, enum latency_type type) in dmar_latency_enable() 57 void dmar_latency_disable(struct intel_iommu *iommu, enum latency_type type) in dmar_latency_disable() 70 void dmar_latency_update(struct intel_iommu *iommu, enum latency_type type, u64 latency) in dmar_latency_update() 116 int dmar_latency_snapshot(struct intel_iommu *iommu, char *str, size_t size) in dmar_latency_snapshot()
|
| D | debugfs.c | 117 struct intel_iommu *iommu; in iommu_regset_show() local 218 static void ctx_tbl_walk(struct seq_file *m, struct intel_iommu *iommu, u16 bus) in ctx_tbl_walk() 264 static void root_tbl_walk(struct seq_file *m, struct intel_iommu *iommu) in root_tbl_walk() 286 struct intel_iommu *iommu; in dmar_translation_struct_show() local 397 struct intel_iommu *iommu) in invalidation_queue_entry_show() 426 struct intel_iommu *iommu; in invalidation_queue_show() local 458 struct intel_iommu *iommu) in ir_tbl_remap_entry_show() 482 struct intel_iommu *iommu) in ir_tbl_posted_entry_show() 514 struct intel_iommu *iommu; in ir_translation_struct_show() local 562 static void latency_show_one(struct seq_file *m, struct intel_iommu *iommu, in latency_show_one() [all …]
|
| D | perf.h | 47 dmar_latency_enable(struct intel_iommu *iommu, enum latency_type type) in dmar_latency_enable() 53 dmar_latency_disable(struct intel_iommu *iommu, enum latency_type type) in dmar_latency_disable() 58 dmar_latency_enabled(struct intel_iommu *iommu, enum latency_type type) in dmar_latency_enabled() 64 dmar_latency_update(struct intel_iommu *iommu, enum latency_type type, u64 latency) in dmar_latency_update() 69 dmar_latency_snapshot(struct intel_iommu *iommu, char *str, size_t size) in dmar_latency_snapshot()
|
| /kernel/linux/linux-6.6/drivers/iommu/ |
| D | sun50i-iommu.c | 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() 142 static void iommu_write(struct sun50i_iommu *iommu, u32 offset, u32 value) in iommu_write() 293 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_table_flush() local 300 static void sun50i_iommu_zap_iova(struct sun50i_iommu *iommu, in sun50i_iommu_zap_iova() 317 static void sun50i_iommu_zap_ptw_cache(struct sun50i_iommu *iommu, in sun50i_iommu_zap_ptw_cache() 333 static void sun50i_iommu_zap_range(struct sun50i_iommu *iommu, in sun50i_iommu_zap_range() 356 static int sun50i_iommu_flush_all_tlb(struct sun50i_iommu *iommu) in sun50i_iommu_flush_all_tlb() 386 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_iommu_flush_iotlb_all() local [all …]
|
| D | msm_iommu.c | 54 static int __enable_clocks(struct msm_iommu_dev *iommu) in __enable_clocks() 71 static void __disable_clocks(struct msm_iommu_dev *iommu) in __disable_clocks() 120 struct msm_iommu_dev *iommu = NULL; in __flush_iotlb() local 142 struct msm_iommu_dev *iommu = NULL; in __flush_iotlb_range() local 206 static void config_mids(struct msm_iommu_dev *iommu, in config_mids() 366 struct msm_iommu_dev *iommu, *ret = NULL; in find_iommu_for_dev() local 384 struct msm_iommu_dev *iommu; in msm_iommu_probe_device() local 401 struct msm_iommu_dev *iommu; in msm_iommu_attach_dev() local 451 struct msm_iommu_dev *iommu; in msm_iommu_set_platform_dma() local 516 struct msm_iommu_dev *iommu; in msm_iommu_iova_to_phys() local [all …]
|
| D | rockchip-iommu.c | 113 struct iommu_device iommu; member 121 struct rk_iommu *iommu; member 345 static void rk_iommu_command(struct rk_iommu *iommu, u32 command) in rk_iommu_command() 357 static void rk_iommu_zap_lines(struct rk_iommu *iommu, dma_addr_t iova_start, in rk_iommu_zap_lines() 374 static bool rk_iommu_is_stall_active(struct rk_iommu *iommu) in rk_iommu_is_stall_active() 386 static bool rk_iommu_is_paging_enabled(struct rk_iommu *iommu) in rk_iommu_is_paging_enabled() 398 static bool rk_iommu_is_reset_done(struct rk_iommu *iommu) in rk_iommu_is_reset_done() 409 static int rk_iommu_enable_stall(struct rk_iommu *iommu) in rk_iommu_enable_stall() 434 static int rk_iommu_disable_stall(struct rk_iommu *iommu) in rk_iommu_disable_stall() 455 static int rk_iommu_enable_paging(struct rk_iommu *iommu) in rk_iommu_enable_paging() [all …]
|
| /kernel/linux/linux-5.10/drivers/iommu/ |
| D | sun50i-iommu.c | 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() 141 static void iommu_write(struct sun50i_iommu *iommu, u32 offset, u32 value) in iommu_write() 292 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_table_flush() local 299 static int sun50i_iommu_flush_all_tlb(struct sun50i_iommu *iommu) in sun50i_iommu_flush_all_tlb() 329 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_iommu_flush_iotlb_all() local 354 static int sun50i_iommu_enable(struct sun50i_iommu *iommu) in sun50i_iommu_enable() 436 static void sun50i_iommu_disable(struct sun50i_iommu *iommu) in sun50i_iommu_disable() 451 static void *sun50i_iommu_alloc_page_table(struct sun50i_iommu *iommu, in sun50i_iommu_alloc_page_table() [all …]
|
| D | msm_iommu.c | 55 static int __enable_clocks(struct msm_iommu_dev *iommu) in __enable_clocks() 72 static void __disable_clocks(struct msm_iommu_dev *iommu) in __disable_clocks() 121 struct msm_iommu_dev *iommu = NULL; in __flush_iotlb() local 143 struct msm_iommu_dev *iommu = NULL; in __flush_iotlb_range() local 214 static void config_mids(struct msm_iommu_dev *iommu, in config_mids() 375 struct msm_iommu_dev *iommu, *ret = NULL; in find_iommu_for_dev() local 393 struct msm_iommu_dev *iommu; in msm_iommu_probe_device() local 414 struct msm_iommu_dev *iommu; in msm_iommu_attach_dev() local 464 struct msm_iommu_dev *iommu; in msm_iommu_detach_dev() local 517 struct msm_iommu_dev *iommu; in msm_iommu_iova_to_phys() local [all …]
|
| D | rockchip-iommu.c | 107 struct iommu_device iommu; member 115 struct rk_iommu *iommu; member 285 static void rk_iommu_command(struct rk_iommu *iommu, u32 command) in rk_iommu_command() 297 static void rk_iommu_zap_lines(struct rk_iommu *iommu, dma_addr_t iova_start, in rk_iommu_zap_lines() 314 static bool rk_iommu_is_stall_active(struct rk_iommu *iommu) in rk_iommu_is_stall_active() 326 static bool rk_iommu_is_paging_enabled(struct rk_iommu *iommu) in rk_iommu_is_paging_enabled() 338 static bool rk_iommu_is_reset_done(struct rk_iommu *iommu) in rk_iommu_is_reset_done() 349 static int rk_iommu_enable_stall(struct rk_iommu *iommu) in rk_iommu_enable_stall() 374 static int rk_iommu_disable_stall(struct rk_iommu *iommu) in rk_iommu_disable_stall() 395 static int rk_iommu_enable_paging(struct rk_iommu *iommu) in rk_iommu_enable_paging() [all …]
|
| /kernel/linux/linux-6.6/arch/sparc/kernel/ |
| D | iommu.c | 52 struct iommu *iommu = container_of(iommu_map_table, struct iommu, tbl); in iommu_flushall() local 80 #define IOPTE_IS_DUMMY(iommu, iopte) \ argument 83 static inline void iopte_make_dummy(struct iommu *iommu, iopte_t *iopte) in iopte_make_dummy() 93 int iommu_table_init(struct iommu *iommu, int tsbsize, in iommu_table_init() 157 struct iommu *iommu, in alloc_npages() 170 static int iommu_alloc_ctx(struct iommu *iommu) in iommu_alloc_ctx() 188 static inline void iommu_free_ctx(struct iommu *iommu, int ctx) in iommu_free_ctx() 202 struct iommu *iommu; in dma_4u_alloc_coherent() local 250 struct iommu *iommu; in dma_4u_free_coherent() local 268 struct iommu *iommu; in dma_4u_map_page() local [all …]
|
| D | iommu-common.c | 19 static inline bool need_flush(struct iommu_map_table *iommu) in need_flush() 24 static inline void set_flush(struct iommu_map_table *iommu) in set_flush() 29 static inline void clear_flush(struct iommu_map_table *iommu) in clear_flush() 52 void iommu_tbl_pool_init(struct iommu_map_table *iommu, in iommu_tbl_pool_init() 98 struct iommu_map_table *iommu, in iommu_tbl_range_alloc() 246 void iommu_tbl_range_free(struct iommu_map_table *iommu, u64 dma_addr, in iommu_tbl_range_free()
|
| /kernel/linux/linux-5.10/arch/sparc/kernel/ |
| D | iommu.c | 52 struct iommu *iommu = container_of(iommu_map_table, struct iommu, tbl); in iommu_flushall() local 80 #define IOPTE_IS_DUMMY(iommu, iopte) \ argument 83 static inline void iopte_make_dummy(struct iommu *iommu, iopte_t *iopte) in iopte_make_dummy() 93 int iommu_table_init(struct iommu *iommu, int tsbsize, in iommu_table_init() 157 struct iommu *iommu, in alloc_npages() 170 static int iommu_alloc_ctx(struct iommu *iommu) in iommu_alloc_ctx() 188 static inline void iommu_free_ctx(struct iommu *iommu, int ctx) in iommu_free_ctx() 202 struct iommu *iommu; in dma_4u_alloc_coherent() local 250 struct iommu *iommu; in dma_4u_free_coherent() local 268 struct iommu *iommu; in dma_4u_map_page() local [all …]
|
| D | iommu-common.c | 19 static inline bool need_flush(struct iommu_map_table *iommu) in need_flush() 24 static inline void set_flush(struct iommu_map_table *iommu) in set_flush() 29 static inline void clear_flush(struct iommu_map_table *iommu) in clear_flush() 52 void iommu_tbl_pool_init(struct iommu_map_table *iommu, in iommu_tbl_pool_init() 98 struct iommu_map_table *iommu, in iommu_tbl_range_alloc() 246 void iommu_tbl_range_free(struct iommu_map_table *iommu, u64 dma_addr, in iommu_tbl_range_free()
|
| /kernel/linux/linux-5.10/drivers/vfio/ |
| D | vfio_iommu_type1.c | 138 #define IS_IOMMU_CAP_DOMAIN_IN_CONTAINER(iommu) \ argument 165 static struct vfio_dma *vfio_find_dma(struct vfio_iommu *iommu, in vfio_find_dma() 184 static void vfio_link_dma(struct vfio_iommu *iommu, struct vfio_dma *new) in vfio_link_dma() 203 static void vfio_unlink_dma(struct vfio_iommu *iommu, struct vfio_dma *old) in vfio_unlink_dma() 247 static void vfio_iommu_populate_bitmap_full(struct vfio_iommu *iommu) in vfio_iommu_populate_bitmap_full() 259 static int vfio_dma_bitmap_alloc_all(struct vfio_iommu *iommu, size_t pgsize) in vfio_dma_bitmap_alloc_all() 284 static void vfio_dma_bitmap_free_all(struct vfio_iommu *iommu) in vfio_dma_bitmap_free_all() 720 struct vfio_iommu *iommu = iommu_data; in vfio_iommu_type1_pin_pages() local 824 struct vfio_iommu *iommu = iommu_data; in vfio_iommu_type1_unpin_pages() local 945 static long vfio_unmap_unpin(struct vfio_iommu *iommu, struct vfio_dma *dma, in vfio_unmap_unpin() [all …]
|
| /kernel/linux/linux-6.6/drivers/vfio/ |
| D | vfio_iommu_type1.c | 165 static struct vfio_dma *vfio_find_dma(struct vfio_iommu *iommu, in vfio_find_dma() 184 static struct rb_node *vfio_find_dma_first_node(struct vfio_iommu *iommu, in vfio_find_dma_first_node() 209 static void vfio_link_dma(struct vfio_iommu *iommu, struct vfio_dma *new) in vfio_link_dma() 228 static void vfio_unlink_dma(struct vfio_iommu *iommu, struct vfio_dma *old) in vfio_unlink_dma() 272 static void vfio_iommu_populate_bitmap_full(struct vfio_iommu *iommu) in vfio_iommu_populate_bitmap_full() 284 static int vfio_dma_bitmap_alloc_all(struct vfio_iommu *iommu, size_t pgsize) in vfio_dma_bitmap_alloc_all() 309 static void vfio_dma_bitmap_free_all(struct vfio_iommu *iommu) in vfio_dma_bitmap_free_all() 802 struct vfio_iommu *iommu = iommu_data; in vfio_iommu_type1_pin_pages() local 919 struct vfio_iommu *iommu = iommu_data; in vfio_iommu_type1_unpin_pages() local 1037 static long vfio_unmap_unpin(struct vfio_iommu *iommu, struct vfio_dma *dma, in vfio_unmap_unpin() [all …]
|