Home
last modified time | relevance | path

Searched refs:iovad (Results 1 – 7 of 7) sorted by relevance

/linux/drivers/iommu/
H A Diova.c22 static bool iova_rcache_insert(struct iova_domain *iovad,
25 static unsigned long iova_rcache_get(struct iova_domain *iovad,
28 static void free_iova_rcaches(struct iova_domain *iovad);
29 static void free_cpu_cached_iovas(unsigned int cpu, struct iova_domain *iovad);
30 static void free_global_cached_iovas(struct iova_domain *iovad);
38 init_iova_domain(struct iova_domain *iovad, unsigned long granule, in init_iova_domain() argument
48 spin_lock_init(&iovad->iova_rbtree_lock); in init_iova_domain()
49 iovad->rbroot = RB_ROOT; in init_iova_domain()
50 iovad->cached_node = &iovad->anchor.node; in init_iova_domain()
51 iovad->cached32_node = &iovad->anchor.node; in init_iova_domain()
[all …]
H A Ddma-iommu.c58 struct iova_domain iovad; member
154 free_iova_fast(&cookie->iovad, in fq_ring_free_locked()
428 if (cookie->iovad.granule) { in iommu_put_dma_cookie()
430 put_iova_domain(&cookie->iovad); in iommu_put_dma_cookie()
475 struct iova_domain *iovad = &cookie->iovad; in cookie_init_hw_msi_region() local
479 start -= iova_offset(iovad, start); in cookie_init_hw_msi_region()
480 num_pages = iova_align(iovad, end - start) >> iova_shift(iovad); in cookie_init_hw_msi_region()
491 start += iovad->granule; in cookie_init_hw_msi_region()
507 struct iova_domain *iovad) in iova_reserve_pci_windows() argument
518 lo = iova_pfn(iovad, window->res->start - window->offset); in iova_reserve_pci_windows()
[all …]
/linux/drivers/vdpa/vdpa_user/
H A Diova_domain.c406 vduse_domain_alloc_iova(struct iova_domain *iovad, in vduse_domain_alloc_iova() argument
409 unsigned long shift = iova_shift(iovad); in vduse_domain_alloc_iova()
410 unsigned long iova_len = iova_align(iovad, size) >> shift; in vduse_domain_alloc_iova()
413 iova_pfn = alloc_iova_fast(iovad, iova_len, limit >> shift, true); in vduse_domain_alloc_iova()
418 static void vduse_domain_free_iova(struct iova_domain *iovad, in vduse_domain_free_iova() argument
421 unsigned long shift = iova_shift(iovad); in vduse_domain_free_iova()
422 unsigned long iova_len = iova_align(iovad, size) >> shift; in vduse_domain_free_iova()
424 free_iova_fast(iovad, iova >> shift, iova_len); in vduse_domain_free_iova()
452 struct iova_domain *iovad = &domain->stream_iovad; in vduse_domain_map_page() local
455 dma_addr_t iova = vduse_domain_alloc_iova(iovad, size, limit); in vduse_domain_map_page()
[all …]
/linux/drivers/staging/media/ipu7/
H A Dipu7-dma.c174 iova = alloc_iova(&mmu->dmap->iovad, count, in ipu7_dma_alloc()
236 __free_iova(&mmu->dmap->iovad, iova); in ipu7_dma_alloc()
249 struct iova *iova = find_iova(&mmu->dmap->iovad, PHYS_PFN(dma_handle)); in ipu7_dma_free()
291 __free_iova(&mmu->dmap->iovad, iova); in ipu7_dma_free()
336 struct iova *iova = find_iova(&mmu->dmap->iovad, in ipu7_dma_unmap_sg()
370 __free_iova(&mmu->dmap->iovad, iova); in ipu7_dma_unmap_sg()
407 lo = iova_pfn(&mmu->dmap->iovad, IPU_FW_CODE_REGION_START); in ipu7_dma_map_sg()
408 hi = iova_pfn(&mmu->dmap->iovad, IPU_FW_CODE_REGION_END) - 1U; in ipu7_dma_map_sg()
409 iova = reserve_iova(&mmu->dmap->iovad, lo, hi); in ipu7_dma_map_sg()
416 iova = alloc_iova(&mmu->dmap->iovad, npages, in ipu7_dma_map_sg()
H A Dipu7-mmu.c407 iova = alloc_iova(&mmu->dmap->iovad, n_pages, in allocate_trash_buffer()
452 __free_iova(&mmu->dmap->iovad, iova); in allocate_trash_buffer()
670 init_iova_domain(&dmap->iovad, SZ_4K, base_pfn); in alloc_dma_mapping()
758 iova = find_iova(&dmap->iovad, PHYS_PFN(mmu->iova_trash_page)); in ipu7_mmu_destroy()
763 __free_iova(&dmap->iovad, iova); in ipu7_mmu_destroy()
851 put_iova_domain(&dmap->iovad); in ipu7_mmu_cleanup()
/linux/drivers/media/pci/intel/ipu6/
H A Dipu6-dma.c174 iova = alloc_iova(&mmu->dmap->iovad, count, in ipu6_dma_alloc()
236 __free_iova(&mmu->dmap->iovad, iova); in ipu6_dma_alloc()
249 struct iova *iova = find_iova(&mmu->dmap->iovad, PHYS_PFN(dma_handle)); in ipu6_dma_free()
291 __free_iova(&mmu->dmap->iovad, iova); in ipu6_dma_free()
336 struct iova *iova = find_iova(&mmu->dmap->iovad, in ipu6_dma_unmap_sg()
370 __free_iova(&mmu->dmap->iovad, iova); in ipu6_dma_unmap_sg()
400 iova = alloc_iova(&mmu->dmap->iovad, npages, in ipu6_dma_map_sg()
H A Dipu6-mmu.c424 iova = alloc_iova(&mmu->dmap->iovad, n_pages, in allocate_trash_buffer()
469 __free_iova(&mmu->dmap->iovad, iova); in allocate_trash_buffer()
626 init_iova_domain(&dmap->iovad, SZ_4K, 1); in alloc_dma_mapping()
713 iova = find_iova(&dmap->iovad, PHYS_PFN(mmu->iova_trash_page)); in ipu6_mmu_destroy()
718 __free_iova(&dmap->iovad, iova); in ipu6_mmu_destroy()
804 put_iova_domain(&dmap->iovad); in ipu6_mmu_cleanup()