summaryrefslogtreecommitdiff
path: root/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
AgeCommit message (Collapse)Author
2020-06-11MGS-5768 [#imx-2132] fix android cts memory leak with ↵Xianzhong
CL_MEM_USE_HOST_PHYSICAL_ADDR_VIV CL_MEM_USE_HOST_PHYSICAL_ADDR_VIV will use host physical memory directly, logical address is zero. gckOS_UnlockPages will check Logical address and return invalid parameter, that causes memory leak in OpenCL user library, need remove this check. Signed-off-by: Xianzhong <xianzhong.li@nxp.com> (cherry picked from commit 85a7c0f80d4f44d990f9ba85ecf2b6baea06053c) (cherry picked from commit d3f9bbb64cc198f06a92676eb536a7b4c0f08eeb)
2019-08-30MA-14512-1 [#imx-1412] Use __GFP_DMA32 to replace CMA LIMIT when ↵Richard Liu
CONFIG_ZONE_DMA32 enable When CONFIG_ZONE_DMA32 kernel configure enabled, use __GFP_DMA32 to ensure allocated memory within 4GB, then dma, cma and gfp allocators all can be used. Previous CMA LIMIT solution has limitation, only CMA allocator can ensure the allocated memory within 4GB and only with CMA LIMIT flag can use CMA allocator, some memory allocate fail due to no CMA limit flag but CMA still has much memory. This patch will back compatible, if enable CONFIG_ZONE_DMA32 use __GFP_DMA32, else keep previous CMA LIMIT logic. 4.19 kernel default enable CONFIG_ZONE_DMA32 by commit "ad67f5a6545f7fda8e", this enable CONFIG_ZONE_DMA32 patch can be cherry-picked to 4.14 kernel. Memory allocate fail cases due to without CMA LIMIT flag (can't use CMA memory) and _GFPAlloc fail due to system does not have enough continue memory: [ 3199.603326] gckOS_AllocatePagedMemoryEx(3171) cmafsl 7ea flag = 13 allocator->capability = c000011 [ 3199.612463] gckOS_AllocatePagedMemoryEx(3171) gfp 7ea flag = 13 allocator->capability = 300001b [ 3199.644893] _GFPAlloc fail, 375, Allocator=ffff80083af76980 Mdl=ffff80082171a000 NumPages=2026 Flags=0x13 [ 3199.712954] gckOS_AllocatePagedMemoryEx(3171) cmafsl 7f8 flag = 1 allocator->capability = c000011 [ 3199.721925] gckOS_AllocatePagedMemoryEx(3171) gfp 7f8 flag = 1 allocator->capability = 300001b [ 3199.735073] _GFPAlloc fail, 375, Allocator=ffff80083af76980 Mdl=ffff80006f6aff00 NumPages=2040 Flags=0x1 Change-Id: I56b93bfa06590bea1e0707c41b40009bd133fecb Signed-off-by: Richard Liu <xuegang.liu@nxp.com>
2019-02-25MGS-4569 [#imx-1347] fix GPU hang when play 4K videoXianzhong
kernel process(with zero pid) has no mdl mapping, skip kernel process to avoid invalid mdl access. also remove memory barrier to avoid rcu issue. Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2019-02-12MGS-4501 upgrade vivante 6.2.4.p4 gpu driverXianzhong
include critical gpu bug-fixings for Android 9.0 commit-id 20ea99e9db80e834c7970568a6122f11327dd5dc Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2019-02-12MLK-20450 Fix Linux NO SMP kernel - GPUCedric Neveux
- Fix GPU-viv drivers to build without SMP Signed-off-by: Cedric Neveux <cedric.neveux@nxp.com>
2019-02-12MA-13467 [#imx-1237] Fix kernel panic when running deqp module.Ivan.liu
Unable to handle kernel paging request at virtual address 1000100 [<ffff000008274ed8>] prefetch_freepointer.isra.37+0x8/0x14 [<ffff0000087bd3b0>] sync_file_create+0x28/0xc0 [<ffff000008b7c7e4>] gckOS_CreateNativeFence+0x74/0x110 [<ffff000008b89a78>] gckKERNEL_Dispatch+0xa54/0x15b0 [<ffff000008b8a8b8>] gckDEVICE_Dispatch+0x2e4/0x2f8 [<ffff000008b81160>] drv_ioctl+0x110/0x21c [<ffff0000082b4478>] do_vfs_ioctl+0xb8/0x8b0 [<ffff0000082b4cf4>] SyS_ioctl+0x84/0x98 The reference count should be increased in one spin lock cycle. Move spin lock out of _QueryIntegerId function. Move signal reference count to gckOS_CreateNativeFence. Change-Id: I1bf89b4de6055e5d0009baf7287f600696c4a529 Signed-off-by: Ivan.liu <xiaowen.liu@nxp.com>
2019-02-12MGS-4376 [#imx-1238] fix low performance with CMA allocatorXianzhong
there are lots of PFNs busy message when run GPU tests: [ 622.370671] alloc_contig_range: [4ea70, 4ea7c) PFNs busy [ 626.518072] alloc_contig_range: [4ea90, 4ea9c) PFNs busy this problem is related with CMA migration for fragments, move CMA allocator after GFP to avoid memory migration, also fix CMA preempt for contiguous memory request. can improve CTS and gpubench benchmarks on M850D. Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2019-02-12MA-13203-2 [#imx-1237] Fix kernel panic when do video plaback with dual ↵Ivan.liu
display on 8mq. BUG: scheduling while atomic: swapper/0/0/0x00010002 CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.14.62 #1 Call trace: [<ffff00000808b2e0>] dump_backtrace+0x0/0x414 [<ffff00000808b708>] show_stack+0x14/0x1c [<ffff000008fbd00c>] dump_stack+0x90/0xb0 [<ffff00000810b8fc>] __schedule_bug+0x50/0x6c [<ffff000008fd3b18>] __schedule+0x720/0x8a8 [<ffff000008fd3cd8>] schedule+0x38/0x9c [<ffff000008fd40f0>] schedule_preempt_disabled+0x20/0x38 [<ffff000008fd51d8>] __mutex_lock.isra.9+0x4dc/0x4fc [<ffff000008fd5208>] __mutex_lock_slowpath+0x10/0x18 [<ffff000008fd5240>] mutex_lock+0x30/0x38 [<ffff000008b79960>] gckOS_DestroySignal+0x30/0xcc [<ffff000008baa3b8>] viv_fence_release+0x24/0x38 [<ffff0000087babcc>] dma_fence_release+0x38/0xf4 [<ffff0000087bb55c>] dma_fence_array_release+0x78/0xac [<ffff0000087babcc>] dma_fence_release+0x38/0xf4 [<ffff0000087bb748>] irq_dma_fence_array_work+0x40/0x4c [<ffff0000081d2878>] irq_work_run_list+0x68/0xa8 [<ffff0000081d28dc>] irq_work_run+0x24/0x40 [<ffff000008092440>] handle_IPI+0x300/0x330 [<ffff00000808197c>] gic_handle_irq+0x8c/0x184 Replace signal mutex lock with spin lock to handle signal in irq. Change-Id: Id18e68f03bcb96c2aaf3ca8a0055fe6a64e8d10a Signed-off-by: Ivan.liu <xiaowen.liu@nxp.com>
2019-02-12MGS-4338-2 [#imx-1223] GPU memory optimization for page faultXianzhong
GPU memory initialization will cause large boot time with 40ms. If GPU memory is allocated from CMA, memset in cma kernel driver, It is not necessary to add duplicated memset in GPU kernel driver. Only GFP allocator need trigger a page fault with a simple write. Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2019-02-12MGS-4151-6 [#imx-1166] merge register read fix for clock-offXianzhong
CL165804 fix read register when internal clock off 1. For shared IRQ, read register may be called and that's not our irq. 2. In some condition, when ISR handled normal FE/PE, PM thread could trun off internal clock before ISR read register of async FE. And then IRQ handler will call read register with internal clock off. So here we need to skip read in such case. This is simple fix. cherry-pick patch: 6.2.4.p3-0019-CL165804-fix-read-register-when-internal-clock-off-1 Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2019-02-12MGS-4166 [#imx-1145] Fix coverity errorsYong Gan
Fix potential Resource leaks and memory illegal access issues. Signed-off-by Yong Gan <yong.gan@ncp.com>
2019-02-12MGS-3785-1 [#imx-990] test_buffers in OCL1.2 CTS crash on 850DChenyan Feng
Allocate the real size of the buffer instead of whole page to aviod GPU overwrite. Date: 10th Aug, 2018 Signed-off-by: Ella Feng <ella.feng@nxp.com>
2019-02-12MGS-3527 [#imx-1078] Rename fence to dma_fenceYong Gan
Support the kernel 4.9.y in fsl_6.2.4.p2. Signed-off-by: Yong Gan<yong.gan@nxp.com>
2019-02-12MA-11957 [Android] Rename fence to dma_fenceYong Gan
Rename fence interfaces to dma_fence to match with the upstream commit, f54d1867005c ("dma-buf: Rename struct fence to dma_fence"), changes. Fix compile issue sync_timeline_create is not defined. Change-Id: I0f89a089f11131070f96a5ddc922938f4b28615f Signed-off-by: zhang sanshan <sanshan.zhang@nxp.com>
2019-02-12MGS-3904 gpu: integrate vivante 6.2.4.p2 driverXianzhong
version upgrade from 6.2.4.p1.150331 to 6.2.4.p2.163672 fixed gpu kernel panic for CONFIG_ARM64_SW_TTBR0_PAN, support frequency query for gpu shader and core. Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2019-02-12MGS-3848-1 [#imx-854] refinements for pm and isrXianzhong
1. slightly increate performance for interrupt handler 2. refine powerMutex lock 3. remove obsolete power management mode 4. code refinement preparing fix for bug #19216, #19230 Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2019-02-12MGS-3705-2 gpu: add 6.2.4.p1 driver for 4.14 kernelXianzhong
integrate 6.2.4.p1 driver and enable gpu build config, fix 4.14 linux kernel build break in gpu-viv driver. source branch: gpu-viv6/fsl_6.2.4.p1 source commit: 8aa3fcbcad9f51441b768bb41ce5c2686f7f143f Signed-off-by: Xianzhong <xianzhong.li@nxp.com>