MGS-3155 [#imx-697] fix gpu hang when insmod galcore secondly
authorXianzhong <xianzhong.li@nxp.com>
Thu, 3 Aug 2017 11:01:31 +0000 (19:01 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 20:36:17 +0000 (15:36 -0500)
gpu hang alway happen when insmod galcore secondly on i.mx8mq,
this problem is related gpu mmu setup with virtual command buffer.

revert the virtual command buffer change to align 6.2.2 driver.

Date: Aug 03, 2017
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h

index adab62f..94f2a2b 100644 (file)
@@ -567,10 +567,18 @@ gckKERNEL_Construct(
                         ;
 
         /* Initialize virtual command buffer. */
-#if gcdALLOC_CMD_FROM_RESERVE || gcdSECURITY || gcdDISABLE_GPU_VIRTUAL_ADDRESS || !USE_KERNEL_VIRTUAL_BUFFERS
-        kernel->virtualCommandBuffer = gcvFALSE;
+#if (defined(LINUX) || defined(__QNXNTO__)) && !defined(EMULATOR) && !gcdALLOC_CMD_FROM_RESERVE
+        kernel->virtualCommandBuffer = gcvTRUE;
 #else
-        kernel->virtualCommandBuffer = kernel->hardware->enableMMU;
+        kernel->virtualCommandBuffer = gcvFALSE;
+#endif
+
+#if defined(UNDER_CE) && USE_KERNEL_VIRTUAL_BUFFERS
+        kernel->virtualCommandBuffer = gcvTRUE;
+#endif
+
+#if gcdSECURITY || gcdDISABLE_GPU_VIRTUAL_ADDRESS
+        kernel->virtualCommandBuffer = gcvFALSE;
 #endif
 
 #if gcdSHARED_PAGETABLE
index ae36961..9e62f99 100644 (file)
@@ -82,7 +82,7 @@ This define enables the use of VM for gckCommand and fence buffers.
 #if defined(UNDER_CE)
 #   define USE_KERNEL_VIRTUAL_BUFFERS           1
 #else
-#   define USE_KERNEL_VIRTUAL_BUFFERS           1
+#   define USE_KERNEL_VIRTUAL_BUFFERS           0
 #endif
 #endif