diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c index 7e4adc5b3..673aafda7 100644 --- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c @@ -2804,10 +2804,11 @@ void gk20a_free_sgtable(struct sg_table **sgt) u64 gk20a_mm_smmu_vaddr_translate(struct gk20a *g, dma_addr_t iova) { - if (!device_is_iommuable(dev_from_gk20a(g)) || !g->mm.has_physical_mode) - return iova; - else + if (device_is_iommuable(dev_from_gk20a(g)) && + g->ops.mm.get_physical_addr_bits) return iova | 1ULL << g->ops.mm.get_physical_addr_bits(g); + + return iova; } u64 gk20a_mm_iova_addr(struct gk20a *g, struct scatterlist *sgl,