Lines Matching defs:iova
18 #include <linux/iova.h>
31 dma_addr_t iova;
195 msi_page->iova = start;
356 pr_warn("iova flush queue initialization failed\n");
402 /* iova will be freed automatically by put_iova_domain() */
471 unsigned long shift, iova_len, iova = 0;
498 iova = alloc_iova_fast(iovad, iova_len, DMA_BIT_MASK(DMA_IOMMU_BIT_MASK_VALUE) >> shift, false);
501 if (!iova) {
502 iova = alloc_iova_fast(iovad, iova_len, dma_limit >> shift, true);
505 return (dma_addr_t)iova << shift;
508 static void iommu_dma_free_iova(struct iommu_dma_cookie *cookie, dma_addr_t iova, size_t size)
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));
550 dma_addr_t iova;
558 iova = iommu_dma_alloc_iova(domain, size, dma_mask, dev);
559 if (!iova) {
563 if (iommu_map_atomic(domain, iova, phys - iova_off, size, prot)) {
564 iommu_dma_free_iova(cookie, iova, size);
567 return iova + iova_off;
664 dma_addr_t iova;
691 iova = iommu_dma_alloc_iova(domain, size, dev->coherent_dma_mask, dev);
692 if (!iova) {
707 if (iommu_map_sg_atomic(domain, iova, sgt.sgl, sgt.orig_nents, ioprot) < size) {
716 *dma_handle = iova;
721 iommu_dma_unmap_ext(dev, iova, size);
725 iommu_dma_free_iova(cookie, iova, size);
915 dma_addr_t iova;
968 iova = iommu_dma_alloc_iova(domain, iova_len, dma_get_mask(dev), dev);
969 if (!iova) {
977 if (iommu_map_sg_atomic(domain, iova, sg, nents, prot) < iova_len) {
981 return finalise_sg_ext(dev, sg, nents, iova);
984 iommu_dma_free_iova(cookie, iova, iova_len);
1285 dma_addr_t iova;
1297 iova = iommu_dma_alloc_iova(domain, size, dma_get_mask(dev), dev);
1298 if (!iova) {
1302 if (iommu_map(domain, iova, msi_addr, size, prot)) {
1308 msi_page->iova = iova;
1313 iommu_dma_free_iova(cookie, iova, size);
1359 msg->address_hi = upper_32_bits(msi_page->iova);
1361 msg->address_lo += lower_32_bits(msi_page->iova);