Home
last modified time | relevance | path

Searched refs:iova (Results 1 – 25 of 183) sorted by relevance

12345678

/linux/drivers/fpga/
H A Ddfl-afu-dma-region.c125 u64 iova, u64 size) in dma_region_check_iova() argument
127 if (!size && region->iova != iova) in dma_region_check_iova()
130 return (region->iova <= iova) && in dma_region_check_iova()
131 (region->length + region->iova >= iova + size); in dma_region_check_iova()
150 (unsigned long long)region->iova); in afu_dma_region_add()
161 if (dma_region_check_iova(this, region->iova, region->length)) in afu_dma_region_add()
164 if (region->iova < this->iova) in afu_dma_region_add()
166 else if (region->iova > this->iova) in afu_dma_region_add()
191 (unsigned long long)region->iova); in afu_dma_region_remove()
213 (unsigned long long)region->iova); in afu_dma_region_destroy()
[all …]
/linux/drivers/iommu/iommufd/
H A Diova_bitmap.c36 unsigned long iova; member
115 unsigned long iova; member
131 unsigned long iova) in iova_bitmap_offset_to_index()
133 return (iova >> bitmap->mapped.pgshift) / in iova_bitmap_offset_to_index()
155 return bitmap->iova + iova_bitmap_index_to_offset(bitmap, skip); in iova_bitmap_mapped_iova()
202 mapped->iova = iova_bitmap_mapped_iova(bitmap); in iova_bitmap_get()
243 struct iova_bitmap *iova_bitmap_alloc(unsigned long iova, size_t length, in iova_bitmap_alloc() argument
259 bitmap->iova = iova; in iova_bitmap_alloc()
261 mapped->iova = iova; in iova_bitmap_alloc()
320 unsigned long max_iova = bitmap->iova + bitmap->length - 1; in iova_bitmap_mapped_length()
[all …]
/linux/include/trace/events/
H A Diommu.h81 TP_PROTO(unsigned long iova, phys_addr_t paddr, size_t size),
83 TP_ARGS(iova, paddr, size),
86 __field(u64, iova)
92 __entry->iova = iova;
97 TP_printk("IOMMU: iova=0x%016llx - 0x%016llx paddr=0x%016llx size=%zu",
98 __entry->iova, __entry->iova + __entry->size, __entry->paddr,
105 TP_PROTO(unsigned long iova, size_t size, size_t unmapped_size),
107 TP_ARGS(iova, siz
[all...]
/linux/drivers/iommu/
H A Dio-pgtable-arm-selftests.c26 static void dummy_tlb_flush(unsigned long iova, size_t size, in dummy_tlb_flush() argument
34 unsigned long iova, size_t granule, in dummy_tlb_add_page() argument
37 dummy_tlb_flush(iova, granule, granule, cookie); in dummy_tlb_add_page()
59 unsigned long iova; in arm_lpae_run_tests() local
87 iova = 0; in arm_lpae_run_tests()
91 if (ops->map_pages(ops, iova, iova, size, 1, in arm_lpae_run_tests()
98 if (!ops->map_pages(ops, iova, iova + size, size, 1, in arm_lpae_run_tests()
103 if (ops->iova_to_phys(ops, iova + 42) != (iova + 42)) in arm_lpae_run_tests()
106 iova += SZ_1G; in arm_lpae_run_tests()
110 iova = 0; in arm_lpae_run_tests()
[all …]
H A Dio-pgtable-arm-v7s.c395 unsigned long iova, phys_addr_t paddr, int prot, in arm_v7s_init_pte() argument
411 tblp = ptep - ARM_V7S_LVL_IDX(iova, lvl, cfg); in arm_v7s_init_pte()
412 if (WARN_ON(__arm_v7s_unmap(data, NULL, iova + i * sz, in arm_v7s_init_pte()
460 static int __arm_v7s_map(struct arm_v7s_io_pgtable *data, unsigned long iova, in __arm_v7s_map() argument
469 ptep += ARM_V7S_LVL_IDX(iova, lvl, cfg); in __arm_v7s_map()
473 return arm_v7s_init_pte(data, iova, paddr, prot, in __arm_v7s_map()
504 return __arm_v7s_map(data, iova, paddr, size, prot, lvl + 1, cptep, gfp); in __arm_v7s_map()
507 static int arm_v7s_map_pages(struct io_pgtable_ops *ops, unsigned long iova, in arm_v7s_map_pages() argument
514 if (WARN_ON(iova >= (1ULL << data->iop.cfg.ias) || in arm_v7s_map_pages()
522 ret = __arm_v7s_map(data, iova, paddr, pgsize, prot, 1, data->pgd, in arm_v7s_map_pages()
[all …]
H A Dsun50i-iommu.c166 static u32 sun50i_iova_get_dte_index(dma_addr_t iova) in sun50i_iova_get_dte_index() argument
168 return FIELD_GET(SUN50I_IOVA_DTE_MASK, iova); in sun50i_iova_get_dte_index()
171 static u32 sun50i_iova_get_pte_index(dma_addr_t iova) in sun50i_iova_get_pte_index() argument
173 return FIELD_GET(SUN50I_IOVA_PTE_MASK, iova); in sun50i_iova_get_pte_index()
176 static u32 sun50i_iova_get_page_offset(dma_addr_t iova) in sun50i_iova_get_page_offset() argument
178 return FIELD_GET(SUN50I_IOVA_PAGE_MASK, iova); in sun50i_iova_get_page_offset()
302 unsigned long iova) in sun50i_iommu_zap_iova() argument
307 iommu_write(iommu, IOMMU_TLB_IVLD_ADDR_REG, iova); in sun50i_iommu_zap_iova()
319 unsigned long iova) in sun50i_iommu_zap_ptw_cache() argument
324 iommu_write(iommu, IOMMU_PC_IVLD_ADDR_REG, iova); in sun50i_iommu_zap_ptw_cache()
[all …]
H A Dio-pgtable-dart.c113 unsigned long iova, phys_addr_t paddr, in dart_init_pte() argument
161 static int dart_get_index(struct dart_io_pgtable *data, unsigned long iova, int level) in dart_get_index() argument
163 return (iova >> (level * data->bits_per_level + ilog2(sizeof(dart_iopte)))) & in dart_get_index()
167 static int dart_get_last_index(struct dart_io_pgtable *data, unsigned long iova) in dart_get_last_index() argument
170 return (iova >> (data->bits_per_level + ilog2(sizeof(dart_iopte)))) & in dart_get_last_index()
174 static dart_iopte *dart_get_last(struct dart_io_pgtable *data, unsigned long iova) in dart_get_last() argument
178 int tbl = dart_get_index(data, iova, level); in dart_get_last()
188 ptep += dart_get_index(data, iova, level); in dart_get_last()
226 static int dart_map_pages(struct io_pgtable_ops *ops, unsigned long iova, in dart_map_pages() argument
247 tbl = dart_get_index(data, iova, level); in dart_map_pages()
[all …]
H A Dexynos-iommu.c101 #define section_offs(iova) (iova & (SECT_SIZE - 1)) argument
103 #define lpage_offs(iova) (iova & (LPAGE_SIZE - 1)) argument
105 #define spage_offs(iova) (iova & (SPAGE_SIZE - 1)) argument
110 static u32 lv1ent_offset(sysmmu_iova_t iova) in lv1ent_offset() argument
112 return iova >> SECT_ORDER; in lv1ent_offset()
115 static u32 lv2ent_offset(sysmmu_iova_t iova) in lv2ent_offset() argument
117 return (iova >> SPAGE_ORDER) & (NUM_LV2ENTRIES - 1); in lv2ent_offset()
181 static sysmmu_pte_t *section_entry(sysmmu_pte_t *pgtable, sysmmu_iova_t iova) in section_entry() argument
183 return pgtable + lv1ent_offset(iova); in section_entry()
186 static sysmmu_pte_t *page_entry(sysmmu_pte_t *sent, sysmmu_iova_t iova) in page_entry() argument
[all …]
H A Dvirtio-iommu.c59 struct interval_tree_node iova; member
330 static int viommu_add_mapping(struct viommu_domain *vdomain, u64 iova, u64 end, in viommu_add_mapping() argument
341 mapping->iova.start = iova; in viommu_add_mapping()
342 mapping->iova.last = end; in viommu_add_mapping()
346 interval_tree_insert(&mapping->iova, &vdomain->mappings); in viommu_add_mapping()
362 u64 iova, u64 end) in viommu_del_mappings() argument
370 next = interval_tree_iter_first(&vdomain->mappings, iova, end); in viommu_del_mappings()
373 mapping = container_of(node, struct viommu_mapping, iova); in viommu_del_mappings()
374 next = interval_tree_iter_next(node, iova, end); in viommu_del_mappings()
377 if (mapping->iova.start < iova) in viommu_del_mappings()
[all …]
H A Dtegra-smmu.c169 static unsigned int iova_pd_index(unsigned long iova) in iova_pd_index() argument
171 return (iova >> SMMU_PDE_SHIFT) & (SMMU_NUM_PDE - 1); in iova_pd_index()
174 static unsigned int iova_pt_index(unsigned long iova) in iova_pt_index() argument
176 return (iova >> SMMU_PTE_SHIFT) & (SMMU_NUM_PTE - 1); in iova_pt_index()
236 unsigned long iova) in smmu_flush_tlb_section() argument
245 value |= SMMU_TLB_FLUSH_ASID_MATCH | SMMU_TLB_FLUSH_VA_SECTION(iova); in smmu_flush_tlb_section()
251 unsigned long iova) in smmu_flush_tlb_group() argument
260 value |= SMMU_TLB_FLUSH_ASID_MATCH | SMMU_TLB_FLUSH_VA_GROUP(iova); in smmu_flush_tlb_group()
559 static void tegra_smmu_set_pde(struct tegra_smmu_as *as, unsigned long iova, in tegra_smmu_set_pde() argument
562 unsigned int pd_index = iova_pd_index(iova); in tegra_smmu_set_pde()
[all …]
H A Drockchip-iommu.c308 * rk3288 iova (IOMMU Virtual Address) format
324 static u32 rk_iova_dte_index(dma_addr_t iova) in rk_iova_dte_index()
326 return (u32)(iova & RK_IOVA_DTE_MASK) >> RK_IOVA_DTE_SHIFT;
329 static u32 rk_iova_pte_index(dma_addr_t iova) in rk_iova_pte_index()
331 return (u32)(iova & RK_IOVA_PTE_MASK) >> RK_IOVA_PTE_SHIFT;
334 static u32 rk_iova_page_offset(dma_addr_t iova) in rk_iova_page_offset()
336 return (u32)(iova & RK_IOVA_PAGE_MASK) >> RK_IOVA_PAGE_SHIFT;
371 dma_addr_t iova; in rk_iommu_zap_lines()
373 for (iova = iova_start; iova < iova_en in rk_iommu_zap_lines()
322 rk_iova_dte_index(dma_addr_t iova) rk_iova_dte_index() argument
327 rk_iova_pte_index(dma_addr_t iova) rk_iova_pte_index() argument
332 rk_iova_page_offset(dma_addr_t iova) rk_iova_page_offset() argument
369 dma_addr_t iova; rk_iommu_zap_lines() local
535 log_iova(struct rk_iommu * iommu,int index,dma_addr_t iova) log_iova() argument
587 dma_addr_t iova; rk_iommu_irq() local
652 rk_iommu_iova_to_phys(struct iommu_domain * domain,dma_addr_t iova) rk_iommu_iova_to_phys() argument
680 rk_iommu_zap_iova(struct rk_iommu_domain * rk_domain,dma_addr_t iova,size_t size) rk_iommu_zap_iova() argument
709 rk_iommu_zap_iova_first_last(struct rk_iommu_domain * rk_domain,dma_addr_t iova,size_t size) rk_iommu_zap_iova_first_last() argument
718 rk_dte_get_page_table(struct rk_iommu_domain * rk_domain,dma_addr_t iova) rk_dte_get_page_table() argument
778 rk_iommu_map_iova(struct rk_iommu_domain * rk_domain,u32 * pte_addr,dma_addr_t pte_dma,dma_addr_t iova,phys_addr_t paddr,size_t size,int prot) rk_iommu_map_iova() argument
828 dma_addr_t pte_dma, iova = (dma_addr_t)_iova; rk_iommu_map() local
868 dma_addr_t pte_dma, iova = (dma_addr_t)_iova; rk_iommu_unmap() local
[all...]
/linux/drivers/staging/media/ipu3/
H A Dipu3-dmamap.c102 struct iova *iova; in imgu_dmamap_alloc() local
107 iova = alloc_iova(&imgu->iova_domain, size >> shift, in imgu_dmamap_alloc()
109 if (!iova) in imgu_dmamap_alloc()
117 iovaddr = iova_dma_addr(&imgu->iova_domain, iova); in imgu_dmamap_alloc()
133 map->daddr = iova_dma_addr(&imgu->iova_domain, iova); in imgu_dmamap_alloc()
142 imgu_mmu_unmap(imgu->mmu, iova_dma_addr(&imgu->iova_domain, iova), in imgu_dmamap_alloc()
146 __free_iova(&imgu->iova_domain, iova); in imgu_dmamap_alloc()
153 struct iova *iova; in imgu_dmamap_unmap() local
155 iova = find_iova(&imgu->iova_domain, in imgu_dmamap_unmap()
157 if (WARN_ON(!iova)) in imgu_dmamap_unmap()
[all …]
H A Dipu3-mmu.c154 static inline void address_to_pte_idx(unsigned long iova, u32 *l1pt_idx, in address_to_pte_idx() argument
157 iova >>= IPU3_PAGE_SHIFT; in address_to_pte_idx()
160 *l2pt_idx = iova & IPU3_L2PT_MASK; in address_to_pte_idx()
162 iova >>= IPU3_L2PT_SHIFT; in address_to_pte_idx()
165 *l1pt_idx = iova & IPU3_L1PT_MASK; in address_to_pte_idx()
210 static int __imgu_mmu_map(struct imgu_mmu *mmu, unsigned long iova, in __imgu_mmu_map() argument
220 address_to_pte_idx(iova, &l1pt_idx, &l2pt_idx); in __imgu_mmu_map()
251 int imgu_mmu_map(struct imgu_mmu_info *info, unsigned long iova, in imgu_mmu_map() argument
262 if (!IS_ALIGNED(iova | paddr | size, IPU3_PAGE_SIZE)) { in imgu_mmu_map()
264 iova, &paddr, size); in imgu_mmu_map()
[all …]
/linux/drivers/staging/media/ipu7/
H A Dipu7-dma.c29 static struct vm_info *get_vm_info(struct ipu7_mmu *mmu, dma_addr_t iova) in get_vm_info() argument
34 if (iova >= info->ipu7_iova && in get_vm_info()
35 iova < (info->ipu7_iova + info->size)) in get_vm_info()
163 struct iova *iova; in ipu7_dma_alloc() local
174 iova = alloc_iova(&mmu->dmap->iovad, count, in ipu7_dma_alloc()
176 if (!iova) in ipu7_dma_alloc()
184 size, iova->pfn_lo, iova->pfn_hi); in ipu7_dma_alloc()
185 for (i = 0; iova->pfn_lo + i <= iova->pfn_hi; i++) { in ipu7_dma_alloc()
197 PFN_PHYS(iova->pfn_lo + i), pci_dma_addr, in ipu7_dma_alloc()
213 *dma_handle = PFN_PHYS(iova->pfn_lo); in ipu7_dma_alloc()
[all …]
H A Dipu7-mmu.c240 static void l2_unmap(struct ipu7_mmu_info *mmu_info, unsigned long iova, in l2_unmap() argument
250 for (l1_idx = iova >> ISP_L1PT_SHIFT; in l2_unmap()
254 l1_idx, iova); in l2_unmap()
259 iova, l1_idx); in l2_unmap()
265 for (l2_idx = (iova & ISP_L2PT_MASK) >> ISP_L2PT_SHIFT; in l2_unmap()
274 iova += ISP_PAGE_SIZE; in l2_unmap()
289 static int l2_map(struct ipu7_mmu_info *mmu_info, unsigned long iova, in l2_map() argument
306 for (l1_idx = iova >> ISP_L1PT_SHIFT; in l2_map()
310 l1_idx, (u32)iova); in l2_map()
345 for (l2_idx = (iova & ISP_L2PT_MASK) >> ISP_L2PT_SHIFT; in l2_map()
[all …]
/linux/drivers/media/pci/intel/ipu6/
H A Dipu6-dma.c29 static struct vm_info *get_vm_info(struct ipu6_mmu *mmu, dma_addr_t iova) in get_vm_info() argument
34 if (iova >= info->ipu6_iova && in get_vm_info()
35 iova < (info->ipu6_iova + info->size)) in get_vm_info()
163 struct iova *iova; in ipu6_dma_alloc() local
174 iova = alloc_iova(&mmu->dmap->iovad, count, in ipu6_dma_alloc()
176 if (!iova) in ipu6_dma_alloc()
184 size, iova->pfn_lo, iova->pfn_hi); in ipu6_dma_alloc()
185 for (i = 0; iova->pfn_lo + i <= iova->pfn_hi; i++) { in ipu6_dma_alloc()
197 PFN_PHYS(iova->pfn_lo + i), pci_dma_addr, in ipu6_dma_alloc()
213 *dma_handle = PFN_PHYS(iova->pfn_lo); in ipu6_dma_alloc()
[all …]
H A Dipu6-mmu.c99 u32 iova = (phys_addr_t)l1_idx << ISP_L1PT_SHIFT; in page_table_dump() local
108 l1_idx, iova, iova + ISP_PAGE_SIZE, &l2_phys); in page_table_dump()
112 u32 iova2 = iova + (l2_idx << ISP_L2PT_SHIFT); in page_table_dump()
257 static void l2_unmap(struct ipu6_mmu_info *mmu_info, unsigned long iova, in l2_unmap() argument
267 for (l1_idx = iova >> ISP_L1PT_SHIFT; in l2_unmap()
271 l1_idx, iova); in l2_unmap()
276 iova, l1_idx); in l2_unmap()
282 for (l2_idx = (iova & ISP_L2PT_MASK) >> ISP_L2PT_SHIFT; in l2_unmap()
291 iova += ISP_PAGE_SIZE; in l2_unmap()
306 static int l2_map(struct ipu6_mmu_info *mmu_info, unsigned long iova, in l2_map() argument
[all …]
/linux/drivers/infiniband/sw/rxe/
H A Drxe_mr.c27 int mr_check_range(struct rxe_mr *mr, u64 iova, size_t length) in mr_check_range() argument
35 if (iova < mr->ibmr.iova || in mr_check_range()
36 iova + length > mr->ibmr.iova + mr->ibmr.length) { in mr_check_range()
37 rxe_dbg_mr(mr, "iova/length out of range\n"); in mr_check_range()
76 * Convert iova to page_info index. The page_info stores pages of size
81 * The MR's iova may not be aligned to mr->page_size. We use the
82 * aligned base (iova & page_mask) as reference, then calculate
83 * which PAGE_SIZE sub-page the iova fall
89 rxe_mr_iova_to_index(struct rxe_mr * mr,u64 iova) rxe_mr_iova_to_index() argument
109 rxe_mr_iova_to_page_offset(struct rxe_mr * mr,u64 iova) rxe_mr_iova_to_page_offset() argument
325 rxe_mr_copy_xarray(struct rxe_mr * mr,u64 iova,void * addr,unsigned int length,enum rxe_mr_copy_dir dir) rxe_mr_copy_xarray() argument
384 rxe_mr_copy(struct rxe_mr * mr,u64 iova,void * addr,unsigned int length,enum rxe_mr_copy_dir dir) rxe_mr_copy() argument
428 u64 iova; copy_data() local
507 rxe_mr_flush_pmem_iova(struct rxe_mr * mr,u64 iova,unsigned int length) rxe_mr_flush_pmem_iova() argument
564 rxe_mr_do_atomic_op(struct rxe_mr * mr,u64 iova,int opcode,u64 compare,u64 swap_add,u64 * orig_val) rxe_mr_do_atomic_op() argument
624 rxe_mr_do_atomic_write(struct rxe_mr * mr,u64 iova,u64 value) rxe_mr_do_atomic_write() argument
[all...]
/linux/drivers/gpu/drm/msm/
H A Dmsm_iommu.c47 unsigned long iova, phys_addr_t paddr, in calc_pgsize() argument
53 unsigned long addr_merge = paddr | iova; in calc_pgsize()
83 if ((iova ^ paddr) & (pgsize_next - 1)) in calc_pgsize()
101 static int msm_iommu_pagetable_unmap(struct msm_mmu *mmu, u64 iova, in msm_iommu_pagetable_unmap() argument
112 pgsize = calc_pgsize(pagetable, iova, iova, size, &count); in msm_iommu_pagetable_unmap()
114 unmapped = ops->unmap_pages(ops, iova, pgsize, count, NULL); in msm_iommu_pagetable_unmap()
125 iova += unmapped; in msm_iommu_pagetable_unmap()
134 static int msm_iommu_pagetable_map_prr(struct msm_mmu *mmu, u64 iova, size_t len, int prot) in msm_iommu_pagetable_map_prr() argument
140 u64 addr = iova; in msm_iommu_pagetable_map_prr()
164 msm_iommu_pagetable_map(struct msm_mmu * mmu,u64 iova,struct sg_table * sgt,size_t off,size_t len,int prot) msm_iommu_pagetable_map() argument
275 msm_iommu_pagetable_walk(struct msm_mmu * mmu,unsigned long iova,uint64_t ptes[4]) msm_iommu_pagetable_walk() argument
298 msm_iommu_pagetable_prealloc_count(struct msm_mmu * mmu,struct msm_mmu_prealloc * p,uint64_t iova,size_t len) msm_iommu_pagetable_prealloc_count() argument
463 msm_iommu_tlb_flush_walk(unsigned long iova,size_t size,size_t granule,void * cookie) msm_iommu_tlb_flush_walk() argument
480 msm_iommu_tlb_add_page(struct iommu_iotlb_gather * gather,unsigned long iova,size_t granule,void * cookie) msm_iommu_tlb_add_page() argument
630 msm_gpu_fault_handler(struct iommu_domain * domain,struct device * dev,unsigned long iova,int flags,void * arg) msm_gpu_fault_handler() argument
650 msm_disp_fault_handler(struct iommu_domain * domain,struct device * dev,unsigned long iova,int flags,void * arg) msm_disp_fault_handler() argument
675 msm_iommu_map(struct msm_mmu * mmu,uint64_t iova,struct sg_table * sgt,size_t off,size_t len,int prot) msm_iommu_map() argument
695 msm_iommu_unmap(struct msm_mmu * mmu,uint64_t iova,size_t len) msm_iommu_unmap() argument
[all...]
/linux/drivers/vdpa/vdpa_user/
H A Diova_domain.c104 u64 iova, u64 size, u64 paddr) in vduse_domain_map_bounce_page() argument
108 u64 last = iova + size - 1; in vduse_domain_map_bounce_page()
110 while (iova <= last) { in vduse_domain_map_bounce_page()
123 map = &domain->bounce_maps[iova >> BOUNCE_MAP_SHIFT]; in vduse_domain_map_bounce_page()
125 head_map = &domain->bounce_maps[(iova & PAGE_MASK) >> BOUNCE_MAP_SHIFT]; in vduse_domain_map_bounce_page()
137 iova += BOUNCE_MAP_SIZE; in vduse_domain_map_bounce_page()
143 u64 iova, u64 size) in vduse_domain_unmap_bounce_page() argument
146 u64 last = iova + size - 1; in vduse_domain_unmap_bounce_page()
148 while (iova <= last) { in vduse_domain_unmap_bounce_page()
149 map = &domain->bounce_maps[iova >> BOUNCE_MAP_SHIF in vduse_domain_unmap_bounce_page()
185 vduse_domain_bounce(struct vduse_iova_domain * domain,dma_addr_t iova,size_t size,enum dma_data_direction dir) vduse_domain_bounce() argument
219 vduse_domain_get_coherent_page(struct vduse_iova_domain * domain,u64 iova) vduse_domain_get_coherent_page() argument
240 vduse_domain_get_bounce_page(struct vduse_iova_domain * domain,u64 iova) vduse_domain_get_bounce_page() argument
419 vduse_domain_free_iova(struct iova_domain * iovad,dma_addr_t iova,size_t size) vduse_domain_free_iova() argument
455 dma_addr_t iova = vduse_domain_alloc_iova(iovad, size, limit); vduse_domain_map_page() local
501 dma_addr_t iova = vduse_domain_alloc_iova(iovad, size, limit); vduse_domain_alloc_coherent() local
549 unsigned long iova = vmf->pgoff << PAGE_SHIFT; vduse_domain_mmap_fault() local
[all...]
/linux/tools/testing/selftests/iommu/
H A Diommufd_fail_nth.c243 __u64 iova; in TEST_FAIL_NTH() local
279 if (_test_ioctl_ioas_map(self->fd, ioas_id, buffer, BUFFER_SIZE, &iova, in TEST_FAIL_NTH()
291 .src_iova = iova, in TEST_FAIL_NTH()
299 if (_test_ioctl_ioas_unmap(self->fd, ioas_id, iova, BUFFER_SIZE, in TEST_FAIL_NTH()
303 _test_ioctl_ioas_unmap(self->fd, ioas_id, iova, BUFFER_SIZE, NULL); in TEST_FAIL_NTH()
313 __u64 iova; in TEST_FAIL_NTH() local
330 if (_test_ioctl_ioas_map(self->fd, ioas_id, buffer, 262144, &iova, in TEST_FAIL_NTH()
349 __u64 iova; in TEST_FAIL_NTH() local
366 if (_test_ioctl_ioas_map_file(self->fd, ioas_id, mfd, 0, 262144, &iova, in TEST_FAIL_NTH()
386 __u64 iova; in TEST_FAIL_NTH() local
431 __u64 iova; TEST_FAIL_NTH() local
510 __u64 iova; TEST_FAIL_NTH() local
566 __u64 iova; TEST_FAIL_NTH() local
639 __u64 iova; TEST_FAIL_NTH() local
[all...]
/linux/drivers/media/platform/nvidia/tegra-vde/
H A Ddmabuf-cache.c28 struct iova *iova; member
39 tegra_vde_iommu_unmap(entry->vde, entry->iova); in tegra_vde_release_entry()
73 struct iova *iova; in tegra_vde_dmabuf_cache_map() local
91 *addrp = iova_dma_addr(&vde->iova, entry->iova); in tegra_vde_dmabuf_cache_map()
125 err = tegra_vde_iommu_map(vde, sgt, &iova, dmabuf->size); in tegra_vde_dmabuf_cache_map()
129 *addrp = iova_dma_addr(&vde->iova, iova); in tegra_vde_dmabuf_cache_map()
132 iova = NULL; in tegra_vde_dmabuf_cache_map()
139 entry->iova = iova; in tegra_vde_dmabuf_cache_map()
/linux/drivers/gpu/drm/etnaviv/
H A Detnaviv_mmu.c19 unsigned long iova, size_t size) in etnaviv_context_unmap() argument
25 unmapped_page = context->global->ops->unmap(context, iova, in etnaviv_context_unmap()
30 iova += unmapped_page; in etnaviv_context_unmap()
36 unsigned long iova, phys_addr_t paddr, in etnaviv_context_map() argument
39 unsigned long orig_iova = iova; in etnaviv_context_map()
45 ret = context->global->ops->map(context, iova, paddr, pgsize, in etnaviv_context_map()
50 iova += pgsize; in etnaviv_context_map()
63 u32 iova, unsigned int va_len, in etnaviv_iommu_map() argument
67 unsigned int da = iova; in etnaviv_iommu_map()
81 if (!IS_ALIGNED(iova | pa | bytes, SZ_4K)) { in etnaviv_iommu_map()
[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() argument
80 if (iova) in __iommu_hva2iova()
81 *iova = region->iova + (vaddr - region->vaddr); in __iommu_hva2iova()
91 iova_t iova; in iommu_hva2iova() local
94 ret = __iommu_hva2iova(iommu, vaddr, &iova); in iommu_hva2iova()
97 return iova; in iommu_hva2iova()
106 .iova = region->iova, in vfio_iommu_map()
124 .iova = region->iova, in iommufd_map()
152 static int __vfio_iommu_unmap(int fd, u64 iova, u64 size, u32 flags, u64 *unmapped) in __vfio_iommu_unmap() argument
156 .iova = iova, in __vfio_iommu_unmap()
[all …]
/linux/include/linux/
H A Dio-pgtable.h41 void (*tlb_flush_walk)(unsigned long iova, size_t size, size_t granule,
44 unsigned long iova, size_t granule, void *cookie);
215 int (*map_pages)(struct io_pgtable_ops *ops, unsigned long iova,
218 size_t (*unmap_pages)(struct io_pgtable_ops *ops, unsigned long iova,
222 unsigned long iova);
223 int (*pgtable_walk)(struct io_pgtable_ops *ops, unsigned long iova, void *wd);
225 unsigned long iova, size_t size,
285 io_pgtable_tlb_flush_walk(struct io_pgtable *iop, unsigned long iova, in io_pgtable_tlb_flush_walk() argument
289 iop->cfg.tlb->tlb_flush_walk(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_walk()
294 struct iommu_iotlb_gather * gather, unsigned long iova, in io_pgtable_tlb_add_page() argument
[all …]

12345678