mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-04-01 03:54:02 +00:00
gpu: host1x: Store device address to all bufs
Currently job pinning is optimized to handle only the first buffer using a certain host1x_bo object and all subsequent buffers using the same host1x_bo are considered done. In most cases this is correct, however, in case the same host1x_bo is used in multiple gathers inside the same job, we skip also storing the device address (physical or iova) to this buffer. This patch reworks the host1x_job_pin() to store the device address to all gathers. Signed-off-by: Andrew Chew <achew@nvidia.com> Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
cc09cb6da9
commit
f08ef2d1a1
1 changed files with 6 additions and 3 deletions
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* Tegra host1x Job
|
* Tegra host1x Job
|
||||||
*
|
*
|
||||||
* Copyright (c) 2010-2013, NVIDIA Corporation.
|
* Copyright (c) 2010-2015, NVIDIA Corporation.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
* under the terms and conditions of the GNU General Public License,
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
@ -539,9 +539,12 @@ int host1x_job_pin(struct host1x_job *job, struct device *dev)
|
||||||
|
|
||||||
g->base = job->gather_addr_phys[i];
|
g->base = job->gather_addr_phys[i];
|
||||||
|
|
||||||
for (j = i + 1; j < job->num_gathers; j++)
|
for (j = i + 1; j < job->num_gathers; j++) {
|
||||||
if (job->gathers[j].bo == g->bo)
|
if (job->gathers[j].bo == g->bo) {
|
||||||
job->gathers[j].handled = true;
|
job->gathers[j].handled = true;
|
||||||
|
job->gathers[j].base = g->base;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = do_relocs(job, g->bo);
|
err = do_relocs(job, g->bo);
|
||||||
if (err)
|
if (err)
|
||||||
|
|
Loading…
Add table
Reference in a new issue