The device parameter to dma_get_sgtable should match the allocating
device, not the consuming device. Fix the calls.

Signed-off-by: Mikko Perttunen <[email protected]>
---
 drivers/gpu/drm/tegra/gem.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c
index f76af733ea79..c4241ce8f71c 100644
--- a/drivers/gpu/drm/tegra/gem.c
+++ b/drivers/gpu/drm/tegra/gem.c
@@ -125,7 +125,8 @@ static struct host1x_bo_mapping *tegra_bo_pin(struct device 
*dev, struct host1x_
                 * not imported, it had to be allocated with the DMA API, so
                 * the DMA API helper can be used.
                 */
-               err = dma_get_sgtable(dev, map->sgt, obj->vaddr, obj->iova, 
gem->size);
+               err = dma_get_sgtable(gem->dev->dev, map->sgt, obj->vaddr,
+                                     obj->iova, gem->size);
                if (err < 0)
                        goto free;
        }
@@ -643,7 +644,7 @@ tegra_gem_prime_map_dma_buf(struct dma_buf_attachment 
*attach,
                                              0, gem->size, GFP_KERNEL) < 0)
                        goto free;
        } else {
-               if (dma_get_sgtable(attach->dev, sgt, bo->vaddr, bo->iova,
+               if (dma_get_sgtable(gem->dev->dev, sgt, bo->vaddr, bo->iova,
                                    gem->size) < 0)
                        goto free;
        }

-- 
2.55.0

Reply via email to