diff options
author | Prabhu Sundararaj <prabhu.sundararaj@nxp.com> | 2016-09-13 10:27:49 -0500 |
---|---|---|
committer | Prabhu Sundararaj <prabhu.sundararaj@nxp.com> | 2016-09-13 10:27:49 -0500 |
commit | 25bb16c5840443e8711732aef26fd46bc1e38582 (patch) | |
tree | 76a5286bfc832136e4572c4c608eca6493800760 /drivers/mxc | |
parent | d3aac3f5b0d2e0dd0fa1e8b165d465f4e4b7d979 (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.c | 3 |
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, |