MGS-5283 [#imx-1238] fix GPU memory without CMA
authorXianzhong <xianzhong.li@nxp.com>
Mon, 28 Oct 2019 16:19:05 +0000 (00:19 +0800)
committerXianzhong <xianzhong.li@nxp.com>
Tue, 29 Oct 2019 15:31:40 +0000 (23:31 +0800)
Fix GPU memory problem when disable CMA allocator,
set LINUX_CMA_FSL=0 in gc_hal_kernel_platform_imx.config

Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
(cherry picked from commit ecd385c98fdbf8b0b83519b1ae710f08a617fc82)

drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c

index 4b7f4e4..efa1117 100644 (file)
@@ -1378,7 +1378,11 @@ gckOS_AllocateNonPagedMemory(
     Flag &= ~gcvALLOC_FLAG_CACHEABLE;
 #endif
 
+#if LINUX_CMA_FSL
     Flag |= gcvALLOC_FLAG_CMA_PREEMPT;
+#else
+    Flag |= gcvALLOC_FLAG_4GB_ADDR | gcvALLOC_FLAG_CONTIGUOUS;
+#endif
 
     /* Walk all allocators. */
     list_for_each_entry(allocator, &Os->allocatorList, link)
@@ -3121,7 +3125,8 @@ gckOS_AllocatePagedMemory(
         Flag &= ~gcvALLOC_FLAG_4GB_ADDR;
     }
 
-#if defined(CONFIG_ZONE_DMA32) && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)
+#if defined(CONFIG_ZONE_DMA32) && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37) \
+    || !defined(LINUX_CMA_FSL) || !LINUX_CMA_FSL
     /* redirect DMA32 pool for CMA LIMIT request */
     if (Flag & gcvALLOC_FLAG_CMA_LIMIT)
     {