Lines Matching defs:iovad
42 struct iova_domain iovad;
55 return cookie->iovad.granule;
138 if (cookie->type == IOMMU_DMA_IOVA_COOKIE && cookie->iovad.granule)
139 put_iova_domain(&cookie->iovad);
172 struct iova_domain *iovad = &cookie->iovad;
176 start -= iova_offset(iovad, start);
177 num_pages = iova_align(iovad, end - start) >> iova_shift(iovad);
188 start += iovad->granule;
195 struct iova_domain *iovad)
206 lo = iova_pfn(iovad, window->res->start - window->offset);
207 hi = iova_pfn(iovad, window->res->end - window->offset);
208 reserve_iova(iovad, lo, hi);
216 lo = iova_pfn(iovad, start);
217 hi = iova_pfn(iovad, end);
218 reserve_iova(iovad, lo, hi);
243 struct iova_domain *iovad = &cookie->iovad;
249 ret = iova_reserve_pci_windows(to_pci_dev(dev), iovad);
262 lo = iova_pfn(iovad, region->start);
263 hi = iova_pfn(iovad, region->start + region->length - 1);
264 reserve_iova(iovad, lo, hi);
277 static void iommu_dma_flush_iotlb_all(struct iova_domain *iovad)
282 cookie = container_of(iovad, struct iommu_dma_cookie, iovad);
308 struct iova_domain *iovad;
314 iovad = &cookie->iovad;
333 if (iovad->start_pfn) {
334 if (1UL << order != iovad->granule ||
335 base_pfn != iovad->start_pfn) {
343 init_iova_domain(iovad, 1UL << order, base_pfn);
347 if (init_iova_flush_queue(iovad, iommu_dma_flush_iotlb_all,
408 struct iova_domain *iovad = &cookie->iovad;
416 shift = iova_shift(iovad);
434 iova = alloc_iova_fast(iovad, iova_len,
438 iova = alloc_iova_fast(iovad, iova_len, dma_limit >> shift,
447 struct iova_domain *iovad = &cookie->iovad;
453 queue_iova(iovad, iova_pfn(iovad, iova),
454 size >> iova_shift(iovad), 0);
456 free_iova_fast(iovad, iova_pfn(iovad, iova),
457 size >> iova_shift(iovad));
465 struct iova_domain *iovad = &cookie->iovad;
466 size_t iova_off = iova_offset(iovad, dma_addr);
471 size = iova_align(iovad, size + iova_off);
487 struct iova_domain *iovad = &cookie->iovad;
488 size_t iova_off = iova_offset(iovad, phys);
494 size = iova_align(iovad, size + iova_off);
590 struct iova_domain *iovad = &cookie->iovad;
620 size = iova_align(iovad, size);
838 struct iova_domain *iovad = &cookie->iovad;
859 size_t s_iova_off = iova_offset(iovad, s->offset);
866 s_length = iova_align(iovad, s_length + s_iova_off);