@@ -69,10 +69,9 @@ struct host1x_job *host1x_job_alloc(struct host1x_channel *ch,
mem += num_waitchks * sizeof(struct host1x_waitchk);
job->gathers = num_cmdbufs ? mem : NULL;
mem += num_cmdbufs * sizeof(struct host1x_job_gather);
- job->addr_phys = num_unpins ? mem : NULL;
-
- job->reloc_addr_phys = job->addr_phys;
- job->gather_addr_phys = &job->addr_phys[num_relocs];
+ job->reloc_addr_phys = num_unpins ? mem : NULL;
+ mem += num_relocs * sizeof(dma_addr_t);
+ job->gather_addr_phys = num_unpins ? mem : NULL;
return job;
}
@@ -194,7 +193,7 @@ static unsigned int pin_job(struct host1x_job *job)
if (!phys_addr)
goto unpin;
- job->addr_phys[job->num_unpins] = phys_addr;
+ job->reloc_addr_phys[i] = phys_addr;
job->unpins[job->num_unpins].bo = reloc->target.bo;
job->unpins[job->num_unpins].sgt = sgt;
job->num_unpins++;
@@ -213,7 +212,7 @@ static unsigned int pin_job(struct host1x_job *job)
if (!phys_addr)
goto unpin;
- job->addr_phys[job->num_unpins] = phys_addr;
+ job->gather_addr_phys[i] = phys_addr;
job->unpins[job->num_unpins].bo = g->bo;
job->unpins[job->num_unpins].sgt = sgt;
job->num_unpins++;
@@ -202,7 +202,6 @@ struct host1x_job {
struct host1x_job_unpin_data *unpins;
unsigned int num_unpins;
- dma_addr_t *addr_phys;
dma_addr_t *gather_addr_phys;
dma_addr_t *reloc_addr_phys;
We are using addr_phys and gather_addr_phys/reloc_addr_phys interchangeably which points to the same set of memory. Using only gather/reloc_addr_phys make the code clearer and less error prone. Signed-off-by: David Ung <davidu@nvidia.com> --- drivers/gpu/host1x/job.c | 11 +++++------ include/linux/host1x.h | 1 - 2 files changed, 5 insertions(+), 7 deletions(-)