summaryrefslogtreecommitdiff
path: root/drivers/gpu/host1x/job.c
diff options
context:
space:
mode:
authorThierry Reding <treding@nvidia.com>2020-02-07 16:50:52 +0100
committerThierry Reding <treding@nvidia.com>2021-12-16 14:07:06 +0100
commit1f39b1dfa53c84b56d7ad37fed44afda7004959d (patch)
tree8ef62c2b9b69fbf96e0cdad49362f2c4c17e0682 /drivers/gpu/host1x/job.c
parentc6aeaf56f468a565f6d2f27325fc07d35cdcd3cb (diff)
drm/tegra: Implement buffer object cache
This cache is used to avoid mapping and unmapping buffer objects unnecessarily. Mappings are cached per client and stay hot until the buffer object is destroyed. Signed-off-by: Thierry Reding <treding@nvidia.com>
Diffstat (limited to 'drivers/gpu/host1x/job.c')
-rw-r--r--drivers/gpu/host1x/job.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/host1x/job.c b/drivers/gpu/host1x/job.c
index 64bcc3d83efc..5e8c183167b7 100644
--- a/drivers/gpu/host1x/job.c
+++ b/drivers/gpu/host1x/job.c
@@ -175,7 +175,7 @@ static unsigned int pin_job(struct host1x *host, struct host1x_job *job)
goto unpin;
}
- map = host1x_bo_pin(dev, bo, direction);
+ map = host1x_bo_pin(dev, bo, direction, &client->cache);
if (IS_ERR(map)) {
err = PTR_ERR(map);
goto unpin;
@@ -222,7 +222,7 @@ static unsigned int pin_job(struct host1x *host, struct host1x_job *job)
goto unpin;
}
- map = host1x_bo_pin(host->dev, g->bo, DMA_TO_DEVICE);
+ map = host1x_bo_pin(host->dev, g->bo, DMA_TO_DEVICE, &host->cache);
if (IS_ERR(map)) {
err = PTR_ERR(map);
goto unpin;