summaryrefslogtreecommitdiff
path: root/drivers/mxc
diff options
context:
space:
mode:
authorPrabhu Sundararaj <prabhu.sundararaj@nxp.com>2016-09-13 10:27:49 -0500
committerPrabhu Sundararaj <prabhu.sundararaj@nxp.com>2016-09-13 10:27:49 -0500
commit25bb16c5840443e8711732aef26fd46bc1e38582 (patch)
tree76a5286bfc832136e4572c4c608eca6493800760 /drivers/mxc
parentd3aac3f5b0d2e0dd0fa1e8b165d465f4e4b7d979 (diff)
MGS-2233 [#imx-178] fix gpu axi bus error with process kill operations
GPU MMU pages are removed with process kill event, but the memory is still in hardware access. gckKERNEL_DestroyProcessDB --> gckOS_UnmapUserMemory --> gckMMU_FreePages --> _FreePages --> clear MMU pages with gcdMMU_CLEAR_VALUE. This is the common issue in GPU driver, can be reproduced easily on GC400T due to low hardware performance. this patch add the command stall to complete gpu hardware pipeline before remove the MMU pages. the original issue can be reproduced with several minutes, not reproducible with the fix. Date: Sep 13, 2016 Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
Diffstat (limited to 'drivers/mxc')
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c
index 1c3eaa63a7e5..2cf92fe30265 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c
@@ -1485,6 +1485,9 @@ gckKERNEL_DestroyProcessDB(
break;
case gcvDB_MAP_USER_MEMORY:
+
+ gcmkERR_BREAK(gckCOMMAND_Stall(Kernel->command, gcvFALSE));
+
/* TODO: Unmap user memory. */
status = gckOS_UnmapUserMemory(Kernel->os,
Kernel->core,