gpu: nvgpu: Handle missing DMA address

If DMA address is not defined, use the physical address.

Bug 1500983

Change-Id: Ic33b21f74c8c2760e43146b87eec7ea467fc87be
Signed-off-by: Sami Kiminki <skiminki@nvidia.com>
(cherry picked from commit 8ae9a6567349241ce1cfff383526b0d9d39c28a1)
Reviewed-on: http://git-master/r/415238
Reviewed-by: Riham Haidar <rhaidar@nvidia.com>
Tested-by: Riham Haidar <rhaidar@nvidia.com>
This commit is contained in:
Sami Kiminki
2014-05-09 18:58:13 +03:00
committed by Dan Willemsen
parent 3899f3b997
commit 465d76f91c

View File

@@ -1284,6 +1284,7 @@ u64 gk20a_vm_map(struct vm_gk20a *vm,
int err = 0;
struct buffer_attrs bfr = {0};
struct gk20a_comptags comptags;
u64 buf_addr;
mutex_lock(&vm->update_gmmu_lock);
@@ -1316,7 +1317,10 @@ u64 gk20a_vm_map(struct vm_gk20a *vm,
bfr.kind_v = kind;
bfr.size = dmabuf->size;
bfr.align = 1 << __ffs((u64)sg_dma_address(bfr.sgt->sgl));
buf_addr = (u64)sg_dma_address(bfr.sgt->sgl);
if (unlikely(!buf_addr))
buf_addr = (u64)sg_phys(bfr.sgt->sgl);
bfr.align = 1 << __ffs(buf_addr);
bfr.pgsz_idx = -1;
/* If FIX_OFFSET is set, pgsz is determined. Otherwise, select