gpu: nvgpu: When NVLINK is enabled use phys addresses

When NVLINK is enabled we need to use phys addresses from the SGT
since NVLINK bypasses the SMMU.

JIRA EVLR-2333

Change-Id: Ibfc0454fa7616056761f8626f2a611749775d091
Signed-off-by: Alex Waterman <alexw@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1654561
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Alex Waterman
2018-02-08 15:08:23 -08:00
committed by mobile promotions
parent 98e87ca10c
commit 338c99b4ec

View File

@@ -501,7 +501,9 @@ static int __nvgpu_gmmu_do_update_page_table(struct vm_gk20a *vm,
* mapping is simple since the "physical" address is actually a virtual
* IO address and will be contiguous.
*/
if (attrs->aperture == APERTURE_SYSMEM && nvgpu_iommuable(g)) {
if (attrs->aperture == APERTURE_SYSMEM &&
nvgpu_iommuable(g) &&
nvgpu_sgt_iommuable(g, sgt)) {
u64 io_addr = nvgpu_sgt_get_gpu_addr(g, sgt, sgt->sgl, attrs);
io_addr += space_to_skip;