mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 17:36:20 +03:00
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:
committed by
Dan Willemsen
parent
3899f3b997
commit
465d76f91c
@@ -1284,6 +1284,7 @@ u64 gk20a_vm_map(struct vm_gk20a *vm,
|
|||||||
int err = 0;
|
int err = 0;
|
||||||
struct buffer_attrs bfr = {0};
|
struct buffer_attrs bfr = {0};
|
||||||
struct gk20a_comptags comptags;
|
struct gk20a_comptags comptags;
|
||||||
|
u64 buf_addr;
|
||||||
|
|
||||||
mutex_lock(&vm->update_gmmu_lock);
|
mutex_lock(&vm->update_gmmu_lock);
|
||||||
|
|
||||||
@@ -1316,7 +1317,10 @@ u64 gk20a_vm_map(struct vm_gk20a *vm,
|
|||||||
|
|
||||||
bfr.kind_v = kind;
|
bfr.kind_v = kind;
|
||||||
bfr.size = dmabuf->size;
|
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;
|
bfr.pgsz_idx = -1;
|
||||||
|
|
||||||
/* If FIX_OFFSET is set, pgsz is determined. Otherwise, select
|
/* If FIX_OFFSET is set, pgsz is determined. Otherwise, select
|
||||||
|
|||||||
Reference in New Issue
Block a user