Lines Matching defs:sgt
307 * @sgt: The sg_table object describing the buffer
331 int dma_map_sgtable(struct device *dev, struct sg_table *sgt,
336 nents = __dma_map_sg_attrs(dev, sgt->sgl, sgt->orig_nents, dir, attrs);
339 sgt->nents = nents;
515 int dma_get_sgtable_attrs(struct device *dev, struct sg_table *sgt,
522 return dma_direct_get_sgtable(dev, sgt, cpu_addr, dma_addr,
525 return iommu_dma_get_sgtable(dev, sgt, cpu_addr, dma_addr,
529 return ops->get_sgtable(dev, sgt, cpu_addr, dma_addr, size, attrs);
777 struct sg_table *sgt;
780 sgt = kmalloc_obj(*sgt, gfp);
781 if (!sgt)
783 if (sg_alloc_table(sgt, 1, gfp))
785 page = __dma_alloc_pages(dev, size, &sgt->sgl->dma_address, dir, gfp);
788 sg_set_page(sgt->sgl, page, PAGE_ALIGN(size), 0);
789 sg_dma_len(sgt->sgl) = sgt->sgl->length;
790 return sgt;
792 sg_free_table(sgt);
794 kfree(sgt);
801 struct sg_table *sgt;
809 sgt = iommu_dma_alloc_noncontiguous(dev, size, dir, gfp, attrs);
811 sgt = alloc_single_sgt(dev, size, dir, gfp);
813 if (sgt) {
814 sgt->nents = 1;
815 trace_dma_alloc_sgt(dev, sgt, size, dir, gfp, attrs);
816 debug_dma_map_sg(dev, sgt->sgl, sgt->orig_nents, 1, dir, attrs);
820 return sgt;
825 struct sg_table *sgt, enum dma_data_direction dir)
827 __dma_free_pages(dev, size, sg_page(sgt->sgl), sgt->sgl->dma_address,
829 sg_free_table(sgt);
830 kfree(sgt);
834 struct sg_table *sgt, enum dma_data_direction dir)
836 trace_dma_free_sgt(dev, sgt, size, dir);
837 debug_dma_unmap_sg(dev, sgt->sgl, sgt->orig_nents, dir, 0);
840 iommu_dma_free_noncontiguous(dev, size, sgt, dir);
842 free_single_sgt(dev, size, sgt, dir);
847 struct sg_table *sgt)
851 return iommu_dma_vmap_noncontiguous(dev, size, sgt);
853 return page_address(sg_page(sgt->sgl));
865 size_t size, struct sg_table *sgt)
868 return iommu_dma_mmap_noncontiguous(dev, vma, size, sgt);
869 return dma_mmap_pages(dev, vma, size, sg_page(sgt->sgl));