Home
last modified time | relevance | path

Searched defs:iommu (Results 1 – 25 of 79) sorted by relevance

1234

/linux/drivers/iommu/amd/
H A Dinit.c232 bool translation_pre_enabled(struct amd_iommu *iommu) in translation_pre_enabled()
237 static void clear_translation_pre_enabled(struct amd_iommu *iommu) in clear_translation_pre_enabled()
242 static void init_translation_status(struct amd_iommu *iommu) in init_translation_status()
267 struct amd_iommu *iommu; in get_global_efr() local
302 static void __init early_iommu_features_init(struct amd_iommu *iommu, in early_iommu_features_init()
315 static u32 iommu_read_l1(struct amd_iommu *iommu, u16 l1, u8 address) in iommu_read_l1()
324 static void iommu_write_l1(struct amd_iommu *iommu, u16 l1, u8 address, u32 val) in iommu_write_l1()
331 static u32 iommu_read_l2(struct amd_iommu *iommu, u8 address) in iommu_read_l2()
340 static void iommu_write_l2(struct amd_iommu *iommu, u8 address, u32 val) in iommu_write_l2()
359 static void iommu_set_exclusion_range(struct amd_iommu *iommu) in iommu_set_exclusion_range()
[all …]
H A Dppr.c20 int __init amd_iommu_alloc_ppr_log(struct amd_iommu *iommu) in amd_iommu_alloc_ppr_log()
27 void amd_iommu_enable_ppr_log(struct amd_iommu *iommu) in amd_iommu_enable_ppr_log()
49 void __init amd_iommu_free_ppr_log(struct amd_iommu *iommu) in amd_iommu_free_ppr_log()
58 void amd_iommu_restart_ppr_log(struct amd_iommu *iommu) in amd_iommu_restart_ppr_log()
81 static bool ppr_is_valid(struct amd_iommu *iommu, u64 *raw) in ppr_is_valid()
105 static void iommu_call_iopf_notifier(struct amd_iommu *iommu, u64 *raw) in iommu_call_iopf_notifier()
162 void amd_iommu_poll_ppr_log(struct amd_iommu *iommu) in amd_iommu_poll_ppr_log()
218 int amd_iommu_iopf_init(struct amd_iommu *iommu) in amd_iommu_iopf_init()
236 void amd_iommu_iopf_uninit(struct amd_iommu *iommu) in amd_iommu_iopf_uninit()
248 int amd_iommu_iopf_add_device(struct amd_iommu *iommu, in amd_iommu_iopf_add_device()
[all …]
H A Diommu.c139 static void update_dte256(struct amd_iommu *iommu, struct iommu_dev_data *dev_data, in update_dte256()
205 static void get_dte256(struct amd_iommu *iommu, struct iommu_dev_data *dev_data, in get_dte256()
295 struct dev_table_entry *get_dev_table(struct amd_iommu *iommu) in get_dev_table()
325 void amd_iommu_set_rlookup_table(struct amd_iommu *iommu, u16 devid) in amd_iommu_set_rlookup_table()
353 static struct iommu_dev_data *alloc_dev_data(struct amd_iommu *iommu, u16 devid) in alloc_dev_data()
371 struct iommu_dev_data *search_dev_data(struct amd_iommu *iommu, u16 devid) in search_dev_data()
392 struct amd_iommu *iommu; in clone_alias() local
427 static void clone_aliases(struct amd_iommu *iommu, struct device *dev) in clone_aliases()
445 static void setup_aliases(struct amd_iommu *iommu, struct device *dev) in setup_aliases()
467 static struct iommu_dev_data *find_dev_data(struct amd_iommu *iommu, u16 devid) in find_dev_data()
[all …]
H A Ddebugfs.c28 struct amd_iommu *iommu = m->private; in iommu_mmio_write() local
50 struct amd_iommu *iommu = m->private; in iommu_mmio_show() local
69 struct amd_iommu *iommu = m->private; in iommu_capability_write() local
92 struct amd_iommu *iommu = m->private; in iommu_capability_show() local
116 struct amd_iommu *iommu = m->private; in iommu_cmdbuf_show() local
143 struct amd_iommu *iommu; in devid_write() local
215 struct amd_iommu *iommu; in dump_dte() local
296 struct amd_iommu *iommu; in dump_irte() local
366 struct amd_iommu *iommu; in amd_iommu_debugfs_setup() local
/linux/drivers/iommu/intel/
H A Diommu.c53 #define rwbf_required(iommu) (rwbf_quirk || cap_rwbf((iommu)->cap)) argument
124 struct device *device_rbtree_find(struct intel_iommu *iommu, u16 rid) in device_rbtree_find()
139 static int device_rbtree_insert(struct intel_iommu *iommu, in device_rbtree_insert()
156 struct intel_iommu *iommu = info->iommu; in device_rbtree_remove() local
185 struct intel_iommu *iommu; /* the corresponding iommu */ member
214 static bool translation_pre_enabled(struct intel_iommu *iommu) in translation_pre_enabled()
219 static void clear_translation_pre_enabled(struct intel_iommu *iommu) in clear_translation_pre_enabled()
224 static void init_translation_status(struct intel_iommu *iommu) in init_translation_status()
285 static unsigned long __iommu_calculate_sagaw(struct intel_iommu *iommu) in __iommu_calculate_sagaw()
303 static int __iommu_calculate_agaw(struct intel_iommu *iommu, int max_gaw) in __iommu_calculate_agaw()
[all …]
H A Dpasid.c196 pasid_cache_invalidation_with_pasid(struct intel_iommu *iommu, in pasid_cache_invalidation_with_pasid()
211 devtlb_invalidation_with_pasid(struct intel_iommu *iommu, in devtlb_invalidation_with_pasid()
240 void intel_pasid_tear_down_entry(struct intel_iommu *iommu, struct device *dev, in intel_pasid_tear_down_entry()
297 static void pasid_flush_caches(struct intel_iommu *iommu, in pasid_flush_caches()
320 static void intel_pasid_flush_present(struct intel_iommu *iommu, in intel_pasid_flush_present()
349 static void pasid_pte_config_first_level(struct intel_iommu *iommu, in pasid_pte_config_first_level()
376 int intel_pasid_setup_first_level(struct intel_iommu *iommu, struct device *dev, in intel_pasid_setup_first_level()
415 int intel_pasid_replace_first_level(struct intel_iommu *iommu, in intel_pasid_replace_first_level()
462 static void pasid_pte_config_second_level(struct intel_iommu *iommu, in pasid_pte_config_second_level()
485 int intel_pasid_setup_second_level(struct intel_iommu *iommu, in intel_pasid_setup_second_level()
[all …]
H A Dirq_remapping.c30 struct intel_iommu *iommu; member
37 struct intel_iommu *iommu; member
44 struct intel_iommu *iommu; member
85 static bool ir_pre_enabled(struct intel_iommu *iommu) in ir_pre_enabled()
90 static void clear_ir_pre_enabled(struct intel_iommu *iommu) in clear_ir_pre_enabled()
95 static void init_ir_status(struct intel_iommu *iommu) in init_ir_status()
104 static int alloc_irte(struct intel_iommu *iommu, in alloc_irte()
143 static int qi_flush_iec(struct intel_iommu *iommu, int index, int mask) in qi_flush_iec()
159 struct intel_iommu *iommu; in modify_irte() local
228 struct intel_iommu *iommu; in clear_entries() local
[all …]
H A Dcache.c24 struct intel_iommu *iommu, struct device *dev, in cache_tage_match()
47 struct intel_iommu *iommu = info->iommu; in cache_tag_assign() local
98 struct intel_iommu *iommu = info->iommu; in cache_tag_unassign() local
202 struct intel_iommu *iommu = info->iommu; in domain_get_id_for_dev() local
293 static void qi_batch_flush_descs(struct intel_iommu *iommu, struct qi_batch *batch) in qi_batch_flush_descs()
304 static void qi_batch_increment_index(struct intel_iommu *iommu, struct qi_batch *batch) in qi_batch_increment_index()
310 static void qi_batch_add_iotlb(struct intel_iommu *iommu, u16 did, u64 addr, in qi_batch_add_iotlb()
318 static void qi_batch_add_dev_iotlb(struct intel_iommu *iommu, u16 sid, u16 pfsid, in qi_batch_add_dev_iotlb()
333 static void qi_batch_add_piotlb(struct intel_iommu *iommu, u16 did, u32 pasid, in qi_batch_add_piotlb()
349 static void qi_batch_add_pasid_dev_iotlb(struct intel_iommu *iommu, u16 sid, u16 pfsid, in qi_batch_add_pasid_dev_iotlb()
[all …]
H A Dperfmon.c327 struct intel_iommu *iommu = iommu_pmu->iommu; in iommu_pmu_start() local
364 struct intel_iommu *iommu = iommu_pmu->iommu; in iommu_pmu_stop() local
476 struct intel_iommu *iommu = iommu_pmu->iommu; in iommu_pmu_enable() local
484 struct intel_iommu *iommu = iommu_pmu->iommu; in iommu_pmu_disable() local
519 struct intel_iommu *iommu = dev_id; in iommu_pmu_irq_handler() local
532 static int __iommu_pmu_register(struct intel_iommu *iommu) in __iommu_pmu_register()
556 get_perf_reg_address(struct intel_iommu *iommu, u32 offset) in get_perf_reg_address()
563 int alloc_iommu_pmu(struct intel_iommu *iommu) in alloc_iommu_pmu()
707 void free_iommu_pmu(struct intel_iommu *iommu) in free_iommu_pmu()
726 static int iommu_pmu_set_interrupt(struct intel_iommu *iommu) in iommu_pmu_set_interrupt()
[all …]
H A Ddmar.c950 static void unmap_iommu(struct intel_iommu *iommu) in unmap_iommu()
964 static int map_iommu(struct intel_iommu *iommu, struct dmar_drhd_unit *drhd) in map_iommu()
1038 struct intel_iommu *iommu; in alloc_iommu() local
1168 static void free_iommu(struct intel_iommu *iommu) in free_iommu()
1240 static void qi_dump_fault(struct intel_iommu *iommu, u32 fault) in qi_dump_fault()
1271 static int qi_check_fault(struct intel_iommu *iommu, int index, int wait_index) in qi_check_fault()
1369 int qi_submit_sync(struct intel_iommu *iommu, struct qi_desc *desc, in qi_submit_sync()
1500 void qi_global_iec(struct intel_iommu *iommu) in qi_global_iec()
1513 void qi_flush_context(struct intel_iommu *iommu, u16 did, u16 sid, u8 fm, in qi_flush_context()
1527 void qi_flush_iotlb(struct intel_iommu *iommu, u16 did, u64 addr, in qi_flush_iotlb()
[all …]
H A Dperfmon.h45 alloc_iommu_pmu(struct intel_iommu *iommu) in alloc_iommu_pmu()
51 free_iommu_pmu(struct intel_iommu *iommu) in free_iommu_pmu()
56 iommu_pmu_register(struct intel_iommu *iommu) in iommu_pmu_register()
61 iommu_pmu_unregister(struct intel_iommu *iommu) in iommu_pmu_unregister()
H A Dnested.c26 struct intel_iommu *iommu = info->iommu; in intel_nested_attach_dev() local
134 static int domain_setup_nested(struct intel_iommu *iommu, in domain_setup_nested()
152 struct intel_iommu *iommu = info->iommu; in intel_nested_set_dev_pasid() local
203 struct intel_iommu *iommu = info->iommu; in intel_iommu_domain_alloc_nested() local
H A Dsvm.c28 void intel_svm_check(struct intel_iommu *iommu) in intel_svm_check()
116 struct intel_iommu *iommu; in intel_iommu_sva_supported() local
153 struct intel_iommu *iommu = info->iommu; in intel_svm_set_dev_pasid() local
/linux/arch/sparc/include/asm/
H A Diommu_64.h55 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
/linux/tools/testing/selftests/vfio/lib/include/libvfio/
H A Diommu.h27 struct iommu { struct
28 const struct iommu_mode *mode; argument
30 int iommufd; argument
35 struct iommu *iommu_init(const char *iommu_mode); argument
40 static inline void iommu_map(struct iommu *iommu, struct dma_region *region) in iommu_map()
47 static inline void iommu_unmap(struct iommu *iommu, struct dma_region *region) in iommu_unmap()
54 static inline void iommu_unmap_all(struct iommu *iommu) in iommu_unmap_all()
/linux/tools/testing/selftests/vfio/lib/
H A Diommu.c69 int __iommu_hva2iova(struct iommu *iommu, void *vaddr, iova_t *iova) in __iommu_hva2iova()
89 iova_t iommu_hva2iova(struct iommu *iommu, void *vaddr) in iommu_hva2iova()
100 static int vfio_iommu_map(struct iommu *iommu, struct dma_region *region) in vfio_iommu_map()
116 static int iommufd_map(struct iommu *iommu, struct dma_region *region) in iommufd_map()
135 int __iommu_map(struct iommu *iommu, struct dma_region *region) in __iommu_map()
170 static int vfio_iommu_unmap(struct iommu *iommu, struct dma_region *region, in vfio_iommu_unmap()
195 static int iommufd_unmap(struct iommu *iommu, struct dma_region *region, in iommufd_unmap()
202 int __iommu_unmap(struct iommu *iommu, struct dma_region *region, u64 *unmapped) in __iommu_unmap()
219 int __iommu_unmap_all(struct iommu *iommu, u64 *unmapped) in __iommu_unmap_all()
312 static struct iommu_iova_range *vfio_iommu_iova_ranges(struct iommu *iommu, in vfio_iommu_iova_ranges()
[all …]
/linux/drivers/iommu/
H A Dsun50i-iommu.c101 struct iommu_device iommu; member
125 struct sun50i_iommu *iommu; member
138 static u32 iommu_read(struct sun50i_iommu *iommu, u32 offset) in iommu_read()
143 static void iommu_write(struct sun50i_iommu *iommu, u32 offset, u32 value) in iommu_write()
294 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_table_flush() local
301 static void sun50i_iommu_zap_iova(struct sun50i_iommu *iommu, in sun50i_iommu_zap_iova()
318 static void sun50i_iommu_zap_ptw_cache(struct sun50i_iommu *iommu, in sun50i_iommu_zap_ptw_cache()
334 static void sun50i_iommu_zap_range(struct sun50i_iommu *iommu, in sun50i_iommu_zap_range()
357 static int sun50i_iommu_flush_all_tlb(struct sun50i_iommu *iommu) in sun50i_iommu_flush_all_tlb()
387 struct sun50i_iommu *iommu = sun50i_domain->iommu; in sun50i_iommu_flush_iotlb_all() local
[all …]
H A Dmsm_iommu.c54 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()
363 struct msm_iommu_dev *iommu, *ret = NULL; in find_iommu_for_dev() local
381 struct msm_iommu_dev *iommu; in msm_iommu_probe_device() local
399 struct msm_iommu_dev *iommu; in msm_iommu_attach_dev() local
450 struct msm_iommu_dev *iommu; in msm_iommu_identity_attach() local
530 struct msm_iommu_dev *iommu; in msm_iommu_iova_to_phys() local
[all …]
H A Drockchip-iommu.c117 struct iommu_device iommu; member
124 struct rk_iommu *iommu; member
347 static void rk_iommu_command(struct rk_iommu *iommu, u32 command) in rk_iommu_command()
359 static void rk_iommu_zap_lines(struct rk_iommu *iommu, dma_addr_t iova_start, in rk_iommu_zap_lines()
376 static bool rk_iommu_is_stall_active(struct rk_iommu *iommu) in rk_iommu_is_stall_active()
388 static bool rk_iommu_is_paging_enabled(struct rk_iommu *iommu) in rk_iommu_is_paging_enabled()
400 static bool rk_iommu_is_reset_done(struct rk_iommu *iommu) in rk_iommu_is_reset_done()
411 static int rk_iommu_enable_stall(struct rk_iommu *iommu) in rk_iommu_enable_stall()
436 static int rk_iommu_disable_stall(struct rk_iommu *iommu) in rk_iommu_disable_stall()
457 static int rk_iommu_enable_paging(struct rk_iommu *iommu) in rk_iommu_enable_paging()
[all …]
/linux/arch/sparc/kernel/
H A Diommu.c52 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
267 struct iommu *iommu; in dma_4u_map_phys() local
[all …]
H A Diommu-common.c19 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()
/linux/drivers/iommu/riscv/
H A Diommu.c70 static void *riscv_iommu_get_pages(struct riscv_iommu_device *iommu, in riscv_iommu_get_pages()
96 static void riscv_iommu_free_pages(struct riscv_iommu_device *iommu, void *addr) in riscv_iommu_free_pages()
131 static int riscv_iommu_queue_alloc(struct riscv_iommu_device *iommu, in riscv_iommu_queue_alloc()
208 static int riscv_iommu_queue_vec(struct riscv_iommu_device *iommu, int n) in riscv_iommu_queue_vec()
220 static int riscv_iommu_queue_enable(struct riscv_iommu_device *iommu, in riscv_iommu_queue_enable()
288 struct riscv_iommu_device *iommu = queue->iommu; in riscv_iommu_queue_disable() local
486 static void riscv_iommu_cmd_send(struct riscv_iommu_device *iommu, in riscv_iommu_cmd_send()
493 static void riscv_iommu_cmd_sync(struct riscv_iommu_device *iommu, in riscv_iommu_cmd_sync()
514 static void riscv_iommu_fault(struct riscv_iommu_device *iommu, in riscv_iommu_fault()
531 struct riscv_iommu_device *iommu = queue->iommu; in riscv_iommu_fltq_process() local
[all …]
/linux/drivers/vfio/
H A Dvfio_iommu_type1.c166 static struct vfio_dma *vfio_find_dma(struct vfio_iommu *iommu, in vfio_find_dma()
187 static struct rb_node *vfio_find_dma_first_node(struct vfio_iommu *iommu, in vfio_find_dma_first_node()
215 static void vfio_link_dma(struct vfio_iommu *iommu, struct vfio_dma *new) in vfio_link_dma()
236 static void vfio_unlink_dma(struct vfio_iommu *iommu, struct vfio_dma *old) in vfio_unlink_dma()
280 static void vfio_iommu_populate_bitmap_full(struct vfio_iommu *iommu) in vfio_iommu_populate_bitmap_full()
292 static int vfio_dma_bitmap_alloc_all(struct vfio_iommu *iommu, size_t pgsize) in vfio_dma_bitmap_alloc_all()
317 static void vfio_dma_bitmap_free_all(struct vfio_iommu *iommu) in vfio_dma_bitmap_free_all()
900 struct vfio_iommu *iommu = iommu_data; in vfio_iommu_type1_pin_pages() local
1023 struct vfio_iommu *iommu = iommu_data; in vfio_iommu_type1_unpin_pages() local
1148 static long vfio_unmap_unpin(struct vfio_iommu *iommu, struct vfio_dma *dma, in vfio_unmap_unpin()
[all …]
/linux/drivers/gpu/drm/msm/
H A Dmsm_iommu.c138 struct msm_iommu *iommu = to_msm_iommu(pagetable->parent); in msm_iommu_pagetable_map_prr() local
224 struct msm_iommu *iommu = to_msm_iommu(pagetable->parent); in msm_iommu_pagetable_destroy() local
269 struct msm_iommu *iommu = to_msm_iommu(mmu); in msm_iommu_get_geometry() local
507 struct msm_iommu *iommu = to_msm_iommu(parent); in msm_iommu_pagetable_create() local
632 struct msm_iommu *iommu = arg; in msm_gpu_fault_handler() local
652 struct msm_iommu *iommu = arg; in msm_disp_fault_handler() local
670 struct msm_iommu *iommu = to_msm_iommu(mmu); in msm_iommu_detach() local
679 struct msm_iommu *iommu = to_msm_iommu(mmu); in msm_iommu_map() local
696 struct msm_iommu *iommu = to_msm_iommu(mmu); in msm_iommu_unmap() local
708 struct msm_iommu *iommu = to_msm_iommu(mmu); in msm_iommu_destroy() local
[all …]
/linux/tools/testing/selftests/vfio/
H A Dvfio_pci_driver_test.c21 static void region_setup(struct iommu *iommu, in region_setup()
39 static void region_teardown(struct iommu *iommu, struct dma_region *region) in region_teardown()
46 struct iommu *iommu; in FIXTURE() local
239 struct iommu *iommu; in device_has_selftests_driver() local

1234