| /linux/drivers/iommu/ |
| H A D | dma-iommu.c | 59 struct iova_domain iovad; member 155 free_iova_fast(&cookie->iovad, in fq_ring_free_locked() 429 if (cookie->iovad.granule) { in iommu_put_dma_cookie() 431 put_iova_domain(&cookie->iovad); in iommu_put_dma_cookie() 476 struct iova_domain *iovad = &cookie->iovad; in cookie_init_hw_msi_region() local 480 start -= iova_offset(iovad, start); in cookie_init_hw_msi_region() 481 num_pages = iova_align(iovad, end - start) >> iova_shift(iovad); in cookie_init_hw_msi_region() 492 start += iovad->granule; in cookie_init_hw_msi_region() 508 struct iova_domain *iovad) in iova_reserve_pci_windows() argument 519 lo = iova_pfn(iovad, window->res->start - window->offset); in iova_reserve_pci_windows() [all …]
|
| /linux/drivers/accel/amdxdna/ |
| H A D | amdxdna_iommu.c | 27 shift = iova_shift(&xdna->iovad); in amdxdna_iommu_alloc_iova() 28 size = iova_align(&xdna->iovad, size); in amdxdna_iommu_alloc_iova() 30 iova = alloc_iova(&xdna->iovad, size >> shift, end >> shift, size_aligned); in amdxdna_iommu_alloc_iova() 34 *dma_addr = iova_dma_addr(&xdna->iovad, iova); in amdxdna_iommu_alloc_iova() 78 __free_iova(&xdna->iovad, iova); in amdxdna_dma_map_bo() 83 __free_iova(&xdna->iovad, iova); in amdxdna_dma_map_bo() 109 size = iova_align(&xdna->iovad, abo->mem.size); in amdxdna_dma_unmap_bo() 111 free_iova(&xdna->iovad, iova_pfn(&xdna->iovad, abo->mem.dma_addr)); in amdxdna_dma_unmap_bo() 135 iova_align(&xdna->iovad, size), in amdxdna_iommu_alloc() 145 __free_iova(&xdna->iovad, iova); in amdxdna_iommu_alloc() [all …]
|
| H A D | amdxdna_pci_drv.h | 130 struct iova_domain iovad; member
|
| /linux/drivers/vdpa/vdpa_user/ |
| H A D | iova_domain.c | 412 vduse_domain_alloc_iova(struct iova_domain *iovad, in vduse_domain_alloc_iova() argument 415 unsigned long shift = iova_shift(iovad); in vduse_domain_alloc_iova() 416 unsigned long iova_len = iova_align(iovad, size) >> shift; in vduse_domain_alloc_iova() 419 iova_pfn = alloc_iova_fast(iovad, iova_len, limit >> shift, true); in vduse_domain_alloc_iova() 424 static void vduse_domain_free_iova(struct iova_domain *iovad, in vduse_domain_free_iova() argument 427 unsigned long shift = iova_shift(iovad); in vduse_domain_free_iova() 428 unsigned long iova_len = iova_align(iovad, size) >> shift; in vduse_domain_free_iova() 430 free_iova_fast(iovad, iova >> shift, iova_len); in vduse_domain_free_iova() 458 struct iova_domain *iovad = &domain->stream_iovad; in vduse_domain_map_page() local 461 dma_addr_t iova = vduse_domain_alloc_iova(iovad, size, limit); in vduse_domain_map_page() [all …]
|
| /linux/drivers/staging/media/ipu7/ |
| H A D | ipu7-dma.c | 174 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 D | ipu7-mmu.c | 407 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 D | ipu6-dma.c | 174 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 D | ipu6-mmu.c | 424 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()
|