Lines Matching refs:iovad
51 struct iova_domain iovad; member
62 return cookie->iovad.granule; in cookie_msi_granule()
151 if (cookie->type == IOMMU_DMA_IOVA_COOKIE && cookie->iovad.granule) in iommu_put_dma_cookie()
152 put_iova_domain(&cookie->iovad); in iommu_put_dma_cookie()
204 struct iova_domain *iovad = &cookie->iovad; in cookie_init_hw_msi_region() local
208 start -= iova_offset(iovad, start); in cookie_init_hw_msi_region()
209 num_pages = iova_align(iovad, end - start) >> iova_shift(iovad); in cookie_init_hw_msi_region()
220 start += iovad->granule; in cookie_init_hw_msi_region()
230 struct iova_domain *iovad = &cookie->iovad; in iova_reserve_iommu_regions() local
243 lo = iova_pfn(iovad, region->start); in iova_reserve_iommu_regions()
244 hi = iova_pfn(iovad, region->start + region->length - 1); in iova_reserve_iommu_regions()
245 reserve_iova(iovad, lo, hi); in iova_reserve_iommu_regions()
274 struct iova_domain *iovad = &cookie->iovad; in iommu_dma_init_domain() local
309 if (iovad->start_pfn) { in iommu_dma_init_domain()
310 if (1UL << order != iovad->granule || in iommu_dma_init_domain()
311 base_pfn != iovad->start_pfn) { in iommu_dma_init_domain()
319 iovad->dma_32bit_pfn = min(end_pfn + 1, iovad->dma_32bit_pfn); in iommu_dma_init_domain()
324 init_iova_domain(iovad, 1UL << order, base_pfn, end_pfn); in iommu_dma_init_domain()
365 struct iova_domain *iovad = &cookie->iovad; in iommu_dma_alloc_iova() local
373 shift = iova_shift(iovad); in iommu_dma_alloc_iova()
389 iova = alloc_iova_fast(iovad, iova_len, DMA_BIT_MASK(32) >> shift); in iommu_dma_alloc_iova()
392 iova = alloc_iova_fast(iovad, iova_len, dma_limit >> shift); in iommu_dma_alloc_iova()
400 struct iova_domain *iovad = &cookie->iovad; in iommu_dma_free_iova() local
406 free_iova_fast(iovad, iova_pfn(iovad, iova), in iommu_dma_free_iova()
407 size >> iova_shift(iovad)); in iommu_dma_free_iova()
414 struct iova_domain *iovad = &cookie->iovad; in __iommu_dma_unmap() local
415 size_t iova_off = iova_offset(iovad, dma_addr); in __iommu_dma_unmap()
418 size = iova_align(iovad, size + iova_off); in __iommu_dma_unmap()
532 struct iova_domain *iovad = &cookie->iovad; in iommu_dma_alloc() local
555 size = iova_align(iovad, size); in iommu_dma_alloc()
626 iova_off = iova_offset(&cookie->iovad, phys); in __iommu_dma_map()
627 size = iova_align(&cookie->iovad, size + iova_off); in __iommu_dma_map()
740 struct iova_domain *iovad = &cookie->iovad; in iommu_dma_map_sg() local
754 size_t s_iova_off = iova_offset(iovad, s->offset); in iommu_dma_map_sg()
761 s_length = iova_align(iovad, s_length + s_iova_off); in iommu_dma_map_sg()