platform: tegra: rtcpu: fix Mem abort

Fix k6.8 Mem abort after dma_sync_sg_for_cpu
call when running ap_bringup -> camera tests including
test_isp_debugfs_isp6_ob
 - Add pointer NULL check and pass same arguments
   to dma_sync_sg_for_cpu as dma_map_sg

Bug 4396374
Bug 3879036

Change-Id: I8dcad3d3fb21c1bed096d89a879a3343a0358400
Signed-off-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3191329
Reviewed-by: Ketan Patil <ketanp@nvidia.com>
Reviewed-by: Pritesh Raithatha <praithatha@nvidia.com>
Reviewed-by: Ankur Pawar <ankurp@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
This commit is contained in:
Bitan Biswas
2024-08-09 11:08:42 +00:00
committed by mobile promotions
parent a20117f5c2
commit 4593cff331

View File

@@ -1059,12 +1059,27 @@ static int camrtc_run_mem_test(struct seq_file *file,
if (!WARN_ON(testmem->size > mem->size))
mem->used = testmem->size;
if (_camdbg_rmem.enabled)
if (_camdbg_rmem.enabled) {
dma_sync_single_for_cpu(mem_dev, mem->iova, mem->used,
DMA_BIDIRECTIONAL);
else
} else {
if (rce_sgt[i].sgl) {
dma_sync_sg_for_cpu(mem_dev, rce_sgt[i].sgl,
rce_sgt[i].orig_nents, DMA_BIDIRECTIONAL);
}
if (vi_sgt[i].sgl) {
dma_sync_sg_for_cpu(mem_dev, vi_sgt[i].sgl,
vi_sgt[i].nents, DMA_BIDIRECTIONAL);
vi_sgt[i].orig_nents, DMA_BIDIRECTIONAL);
}
if (isp_sgt[i].sgl) {
dma_sync_sg_for_cpu(mem_dev, isp_sgt[i].sgl,
isp_sgt[i].orig_nents, DMA_BIDIRECTIONAL);
}
if (vi2_sgt[i].sgl) {
dma_sync_sg_for_cpu(mem_dev, vi2_sgt[i].sgl,
vi2_sgt[i].orig_nents, DMA_BIDIRECTIONAL);
}
}
}
unmap: