Lines Matching refs:iovad

44         struct iova_domain iovad;
57 return cookie->iovad.granule;
147 if (cookie->type == IOMMU_DMA_IOVA_COOKIE && cookie->iovad.granule) {
148 put_iova_domain(&cookie->iovad);
181 struct iova_domain *iovad = &cookie->iovad;
185 start -= iova_offset(iovad, start);
186 num_pages = iova_align(iovad, end - start) >> iova_shift(iovad);
198 start += iovad->granule;
204 static int iova_reserve_pci_windows(struct pci_dev *dev, struct iova_domain *iovad)
217 lo = iova_pfn(iovad, window->res->start - window->offset);
218 hi = iova_pfn(iovad, window->res->end - window->offset);
219 reserve_iova(iovad, lo, hi);
228 lo = iova_pfn(iovad, start);
229 hi = iova_pfn(iovad, end);
230 reserve_iova(iovad, lo, hi);
251 struct iova_domain *iovad = &cookie->iovad;
257 ret = iova_reserve_pci_windows(to_pci_dev(dev), iovad);
273 lo = iova_pfn(iovad, region->start);
274 hi = iova_pfn(iovad, region->start + region->length - 1);
275 reserve_iova(iovad, lo, hi);
289 static void iommu_dma_flush_iotlb_all(struct iova_domain *iovad)
294 cookie = container_of(iovad, struct iommu_dma_cookie, iovad);
319 struct iova_domain *iovad;
326 iovad = &cookie->iovad;
343 if (iovad->start_pfn) {
344 if (1UL << order != iovad->granule || base_pfn != iovad->start_pfn) {
352 init_iova_domain(iovad, 1UL << order, base_pfn);
355 if (init_iova_flush_queue(iovad, iommu_dma_flush_iotlb_all, NULL)) {
391 struct iova_domain *iovad;
400 iovad = &cookie->iovad;
403 pfn_lo = iova_pfn(iovad, base);
404 pfn_hi = iova_pfn(iovad, base + size - 1);
405 if (!reserve_iova(iovad, pfn_lo, pfn_hi)) {
419 struct iova_domain *iovad;
426 iovad = &((struct iommu_dma_cookie *)domain->iova_cookie)->iovad;
427 iovad->best_fit = true;
470 struct iova_domain *iovad = &cookie->iovad;
478 shift = iova_shift(iovad);
498 iova = alloc_iova_fast(iovad, iova_len, DMA_BIT_MASK(DMA_IOMMU_BIT_MASK_VALUE) >> shift, false);
502 iova = alloc_iova_fast(iovad, iova_len, dma_limit >> shift, true);
510 struct iova_domain *iovad = &cookie->iovad;
516 queue_iova(iovad, iova_pfn(iovad, iova), size >> iova_shift(iovad), 0);
518 free_iova_fast(iovad, iova_pfn(iovad, iova), size >> iova_shift(iovad));
526 struct iova_domain *iovad = &cookie->iovad;
527 size_t iova_off = iova_offset(iovad, dma_addr);
532 size = iova_align(iovad, size + iova_off);
548 struct iova_domain *iovad = &cookie->iovad;
549 size_t iova_off = iova_offset(iovad, phys);
556 size = iova_align(iovad, size + iova_off);
658 struct iova_domain *iovad = &cookie->iovad;
690 size = iova_align(iovad, size);
912 struct iova_domain *iovad = &cookie->iovad;
936 size_t s_iova_off = iova_offset(iovad, s->offset);
943 s_length = iova_align(iovad, s_length + s_iova_off);