Lines Matching refs:sgt

38 static dma_addr_t tegra_bo_pin(struct host1x_bo *bo, struct sg_table **sgt)  in tegra_bo_pin()  argument
45 static void tegra_bo_unpin(struct host1x_bo *bo, struct sg_table *sgt) in tegra_bo_unpin() argument
117 err = iommu_map_sg(tegra->domain, bo->paddr, bo->sgt->sgl, in tegra_bo_iommu_map()
118 bo->sgt->nents, prot); in tegra_bo_iommu_map()
181 sg_free_table(bo->sgt); in tegra_bo_free()
182 kfree(bo->sgt); in tegra_bo_free()
192 struct sg_table *sgt; in tegra_bo_get_pages() local
201 sgt = drm_prime_pages_to_sg(bo->pages, bo->num_pages); in tegra_bo_get_pages()
202 if (IS_ERR(sgt)) in tegra_bo_get_pages()
214 for_each_sg(sgt->sgl, s, sgt->nents, i) in tegra_bo_get_pages()
217 if (dma_map_sg(drm->dev, sgt->sgl, sgt->nents, DMA_TO_DEVICE) == 0) in tegra_bo_get_pages()
220 bo->sgt = sgt; in tegra_bo_get_pages()
225 sg_free_table(sgt); in tegra_bo_get_pages()
226 kfree(sgt); in tegra_bo_get_pages()
227 sgt = ERR_PTR(-ENOMEM); in tegra_bo_get_pages()
230 return PTR_ERR(sgt); in tegra_bo_get_pages()
336 bo->sgt = dma_buf_map_attachment(attach, DMA_TO_DEVICE); in tegra_bo_import()
337 if (!bo->sgt) { in tegra_bo_import()
342 if (IS_ERR(bo->sgt)) { in tegra_bo_import()
343 err = PTR_ERR(bo->sgt); in tegra_bo_import()
352 if (bo->sgt->nents > 1) { in tegra_bo_import()
357 bo->paddr = sg_dma_address(bo->sgt->sgl); in tegra_bo_import()
365 if (!IS_ERR_OR_NULL(bo->sgt)) in tegra_bo_import()
366 dma_buf_unmap_attachment(attach, bo->sgt, DMA_TO_DEVICE); in tegra_bo_import()
385 dma_buf_unmap_attachment(gem->import_attach, bo->sgt, in tegra_bo_free_object()
521 struct sg_table *sgt; in tegra_gem_prime_map_dma_buf() local
523 sgt = kmalloc(sizeof(*sgt), GFP_KERNEL); in tegra_gem_prime_map_dma_buf()
524 if (!sgt) in tegra_gem_prime_map_dma_buf()
531 if (sg_alloc_table(sgt, bo->num_pages, GFP_KERNEL)) in tegra_gem_prime_map_dma_buf()
534 for_each_sg(sgt->sgl, sg, bo->num_pages, i) in tegra_gem_prime_map_dma_buf()
537 if (dma_map_sg(attach->dev, sgt->sgl, sgt->nents, dir) == 0) in tegra_gem_prime_map_dma_buf()
540 if (sg_alloc_table(sgt, 1, GFP_KERNEL)) in tegra_gem_prime_map_dma_buf()
543 sg_dma_address(sgt->sgl) = bo->paddr; in tegra_gem_prime_map_dma_buf()
544 sg_dma_len(sgt->sgl) = gem->size; in tegra_gem_prime_map_dma_buf()
547 return sgt; in tegra_gem_prime_map_dma_buf()
550 sg_free_table(sgt); in tegra_gem_prime_map_dma_buf()
551 kfree(sgt); in tegra_gem_prime_map_dma_buf()
556 struct sg_table *sgt, in tegra_gem_prime_unmap_dma_buf() argument
563 dma_unmap_sg(attach->dev, sgt->sgl, sgt->nents, dir); in tegra_gem_prime_unmap_dma_buf()
565 sg_free_table(sgt); in tegra_gem_prime_unmap_dma_buf()
566 kfree(sgt); in tegra_gem_prime_unmap_dma_buf()