summaryrefslogtreecommitdiff
path: root/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
AgeCommit message (Collapse)Author
2018-08-24MGS-3969 [#imx-879] Fix reading HW counters values using old profiling ↵Marius Vlad
method for GC7000 Adapted from 7a3d1096aa0cc77e258. This brings back the ability for gputop to read HW counter values. Signed-off-by: Marius Vlad <marius-cristian.vlad@nxp.com>
2018-08-24MGS-3694 [#imx-913] enable fb fd and tile status fd in GPU and DCSS on waylandYong Gan
Save the meta data info in the _gcsVIDMEM_NODE. DCSS can query the meta data, and get the tile statust buffer info. Date: Apr 13, 2018 Signed-off-by: Yong Gan yong.gan@nxp.com
2018-08-24MGS-3778 [#imx-989] fix GPU performance regression with 6.2.4.p1Xianzhong
the original patch will skip CMA memory allocation with CMA_LIMIT flag, that enforces GPU memory allocation from virtual pool with MMU mapping, then both 2D and 3D performance will have performance regression on i.MX6. Revert "6.2.4.p1-0044-CL142820-check-flag-match-even-try-to-allocate-from-" This reverts commit 8a8cbf389ad56dc49685ea078698087be867655a. Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-08-24MGS-3616 [#ccc] Integrate 6.2.4.p1.pre2 hal driver to linux kernelYuchou Gan
Update the gpu kernel to 6.2.4.p1.pre2 Date: Jan 26, 2017 Signed-off-by: Yuchou Gan yuchou.gan@nxp.com
2018-08-24MA-10617 [#imx-836] Fix CtsMediaTestCases module test uncompleted issueRichard Liu
CtsMediaTestCases module CTS test can't uncompleted due to native crash, the crash is due to memory leak in drm gralloc, when total leak reach to 4GB it will report mmap fail and cause CTS thread crash. Crash log: 12-02 08:14:51.982 1156 25401 E gralloc-viv: gralloc_vivante_lock#573: failed to mmap 12-02 08:14:51.982 1156 25401 E gralloc-viv: gralloc_lock#136: err=-25 12-02 08:14:51.982 1156 25401 E gralloc : gralloc_lock lock memory failed 12-02 08:14:51.982 1156 25401 W GraphicBufferMapper: lock(0xed4c2740, ...) failed: 5 12-02 08:14:51.982 1156 25401 F SoftwareRenderer: frameworks/av/media/libstagefright/ colorconversion/SoftwareRenderer.cpp:230 CHECK_EQ( 0,mapper.lock( buf->handle, GRALLOC_USAGE_SW_WRITE_OFTEN, bounds, &dst)) failed: 0 vs. 5 Dec. 20, 2017 Signed-off-by: Richard Liu <xuegang.liu@nxp.com>
2018-08-24MGS-3448: gpu-viv: fix 6.2.4 remaning issuesXianzhong
include more GPU bug-fxings for Android DRM feature Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-08-24MGS-3367 [#imx-809] fix cma_release dump with ctrl-cXianzhong
need release user memory before close the drmfb handle, there is no galcore kernel interface for immediate free. add new interface to release the user memory by force, [ 112.487090] [<ffff0000081748c0>] free_contig_range+0xa0/0xc0 [ 112.492757] [<ffff0000081d944c>] cma_release+0x94/0xc0 [ 112.497900] [<ffff0000085e344c>] dma_release_from_contiguous+0x2c/0x38 [ 112.504432] [<ffff000008095ab8>] __dma_free_coherent.isra.14+0x50/0xb8 [ 112.510962] [<ffff000008095b7c>] __dma_free+0x5c/0x90 [ 112.516022] [<ffff0000085c56b4>] drm_gem_cma_free_object+0xa4/0x130 [ 112.522293] [<ffff0000085a6384>] drm_gem_object_free+0x1c/0x58 [ 112.528130] [<ffff0000085a646c>] drm_gem_object_unreference_unlocked+0x54/0x130 [ 112.535445] [<ffff0000085a65c0>] drm_gem_object_handle_unreference_unlocked+0x60/0xb0 [ 112.543281] [<ffff0000085a6664>] drm_gem_object_release_handle+0x54/0x90 [ 112.549989] [<ffff0000083c085c>] idr_for_each+0xb4/0x118 [ 112.555304] [<ffff0000085a73cc>] drm_gem_release+0x24/0x38 [ 112.560794] [<ffff0000085a62dc>] drm_release+0x28c/0x318 [ 112.566111] [<ffff0000081df344>] __fput+0x8c/0x1d0 [ 112.570906] [<ffff0000081df4ec>] ____fput+0xc/0x18 [ 112.575705] [<ffff0000080d7e84>] task_work_run+0xc4/0xe0 [ 112.581020] [<ffff0000080c0770>] do_exit+0x2d0/0x970 [ 112.585988] [<ffff0000080c0e78>] do_group_exit+0x38/0xa0 [ 112.591306] [<ffff0000080caf8c>] get_signal+0x1f4/0x508 [ 112.596536] [<ffff000008087970>] do_signal+0x70/0x550 [ 112.601591] [<ffff000008088080>] do_notify_resume+0x90/0xb0 [ 112.607168] [<ffff000008082ddc>] work_pending+0x8/0x10 Date: Nov 14, 2017 Signed-off-by: Xianzhong <xianzhong.li@nxp.com> Reviewed-by: Prabhu Sundararaj <prabhu.sundararaj@nxp.com> Reviewed-by: Yuchou Gan <yuchou.gan@nxp.com>
2018-08-24MGS-3214 gpu-viv: integrate 6.2.4 driverXianzhong
add dmabuf/gem feature through drm galcore, include more bug-fixing in gpu kernel driver. Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-08-24MGS-3251 [#imx-701] fix power-off issue for ctrl-C exitXianzhong
there are lots of events to pipeline for database destroy, wait for event queue empty before do power-off for last process. side note for the proposed solution: it is not the way to flush pipeline in drv_release thread, since the clock may be turned off by other threads unexpectedly, also the potential deadlock if lock up the power in drv_release. Date: Aug 31, 2017 Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-08-24MGS-3177 [#imx-701] fix the wrong FPS issue on DRM waylandYuchou Gan
The former patch "Fix power-off random failure when GPU become idle" which wait for gpu idle when tried to power off that will cause performance drops when multi applications run at the same time. Refine this patch so that the patch only run at first time when probe, suspend or last process run finished. Date: Aug 29, 2017 Signed-off-by: Yuchou Gan yuchou.gan@nxp.com
2018-08-24MGS-3155 [#imx-697] fix gpu hang when insmod galcore secondlyXianzhong
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>
2018-08-24MGS-3150 gpu: Integrate 6.2.3 official driver releaseXianzhong
Upgrade GPU driver to enable OpenVX 1.1 for i.MX8QM, Integrated more bug-fixing for critical gpu issues. Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-08-24MGS-2970-2 [#imx-603] fix dual gpu hang with power managementXianzhong
gpu1 hang is reproducible when run es32 cts with power mangement. there is the gpu1 power-off/up when commit gpu0 and gpu1 early or late, then gpu0 will break the inter-semaphore & stall from gpu1, and end up, when gpu1 execute its command, will stuck to wait for gpu0 infinitely. prevent the unexpected power-off bofore command commit on dual cores. Date: Jun 18, 2017 Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-08-24MGS-2811: gpu: integrate 6.2.2 official releaseXianzhong
Include some bug-fixings for critical gpu issue. source repo: gpu-viv6 source branch: fsl_6.2.2 Source commit: ef725bcb98733bfe640e814c6ca2b1aa7412402b Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-08-24MGS-2721: gpu: integrate 6.2.2 early release driverXianzhong
integrated critical gpu bug-fixing for i.MX6/i.MX7ULP/i.MX8, solved gpu hang and khronos conformance issues for below features: - OpenGL ES11/ES20/ES30/ES31/ES32, - OpenCL 1.1/1.2FP, - OpenVX 1.0.1 - Vulkan 1.0 - OpenVG 1.1 Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-08-24MGS-2485 [#imx-309] fix gpu base address for new mmu versionXianzhong
The new gpu mmu has no base address feature and need set zero, But hardware mmu version is not initialized before set baseaddress, Hence kernel will get the wrong base address and pass to user driver, This fix will add mmu version initialization before version check. Date: Feb 15, 2017 Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-08-24MGS-2429 [#imx-282] [MX8] Met gpu hang when repeatly do gles vg stress test ↵Yuchou Gan
on gpu0 and bridged mode. 100% There are 2 devices in the MX8 board, and each needs a commitMutex, instead of one big commitMutex in the kernel. Date: Dec 6, 2016 Signed-off-by: Yuchou Gan<yuchou.gan@nxp.com>
2018-08-24MGS-1923 [#imx-19] use device mutex to sync command operationsXianzhong
kernel mutex cannot be shared with gpu0,gpu1 and bridge mode together. use device mutex to prevent the sync problem for gpu command operations. this change is reasonable and fixed one hole in existing implementation. but this patch cannot fix the GPU hang for MGS-2429. Date: Nov 28, 2016 Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-08-24MGS-2302-4 [#imx-225] free the record from the right kernelXianzhong
when the app is killed, the kernel driver will free database from the gpu0. if the app is running on gpu1, its database may be freed by gpu0 unexpectely. free the record from the right kernel, this patch is refined from MGS-2302-1. also Revert "MGS-2302-1 [#imx-225] fix the gpu1 hang with independent mode" This reverts commit 39472fb8b1b30a047c637c82be1b59e0b975bc03. Date: Nov 07, 2016 Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-08-24MGS-2302-1 [#imx-225] fix the gpu1 hang with independent modeXianzhong
when the app is killed, the kernel driver will free database from the gpu0. if the app is running on gpu1, its database may be freed by gpu0 unexpectely. need check kernel pointer in record to prevent the incorrect database free. Date: Oct 17, 2016 Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-08-24MGS-1972 [#imx-142] Enable GPU MMU flat mapping to cover CMA range on DVYong Gan
Limited baseAddress offset only for GPU without MC20 feature. Date: Oct 14, 2016 Signed-off-by: Yong Gan <yong.gan@nxp.com>
2018-08-24MGS-2277 Integrate gpu 6.2.0 official driverXianzhong
Integrate gpu kernel driver for 6.2.0 official release Date: Oct 9, 2016 Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-08-24MGS-2247 gpu: integration 6.2.0 snapshot2 releaseXianzhong
the unified gpu driver to support all graphics APIs for i.MX8, include OpenGL ES, OpenCL, OpenVX, Vulkan, OpenVG. Date: Sep 18, 2016 Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-08-24MGS-2027 [#ccc] integrate 6.1.1 gpu kernel driverXianzhong
Integrate gpu kernel driver part for 6.1.1 release Date: Jul 26, 2016 Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-08-24MGS-1685 [#2356] fix vg context buffer memory leakyong.gan
gcoVGHARDWARE_FreeVideoMemory user space implementation has some problem, the asynchronous unlock/free is required by kernel memory managment, by not available in this function. because user command buffer & struct cannot be freed through committing new vg command to hardware, the new workaround is to double unlock the video memory for gcvHAL_RELEASE_VIDEO_MEMORY, also removed the database as the asynchronous unlock is not available in vg user space driver. Date: May 18, 2016 Signed-off-by: Yong Gan <yong.gan@freescale.com>
2018-08-24MGS-1806 integrate VSI 6.1.0 gpu kernel driverXianzhong
Integrate gles base driver of 6.1.0 gpu release, hal/security_v1 is the new added feature. Date: May 09, 2016 Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-08-24MA-7531 [#2161] optimize event synchronizationMeng Mingming
GPU 3D clock will still enable/disable when video playback, actually there is no 3D usage, to saving power we should avoid 3D clock enable/disable. This patch optimize event synchronization by not pass signal/sync_point to gpu when current gcoHARDWARE is already sync'ed GPU and no command buffer required. Date: Apr 13, 2016 Signed-off-by: Richard Liu <r66033@freescale.com> Signed-off-by: Meng Mingming <mingming.meng@nxp.com>
2018-08-24MA-7715 fix GPU kernel panic reported by android CTSRichard Liu
The patch removes the dependence between cache flush operation and node. Node is not used anymore when flush cache. Cache flush can work with only logical address passed into underlying functions does not need physical address. Signed-off-by: Richard Liu <r66033@freescale.com> (cherry picked from commit ad65770512d2baeb45f5d0622d985f9856b7cc1e)
2018-08-24MGS-1560 [#2172] fix gpu kernel crash with invalid pointerXianzhong
it is necessary to check the node object pointer before use, otherwise the board will reboot with kernel crash. Date: Jan 19, 2016 Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-08-24MGS-1535 gpu: update 5.0.11.p8 driver copyrightXianzhong
Updated 5.0.11.p8 driver copyright from 2015 to 2016 Date: Jan 11, 2016 Signed-off-by: Xianzhong <b07117@freescale.com>
2018-08-24MGS-1274 gpu: Integrate 5.0.11.p8 driverShawn Xiao
Once received Vivate 5.0.11.p8_early_pre driver, integrate the kernel related part to kernel. Signed-off-by: Shawn Xiao <b49994@freescale.com>
2018-08-24MGS-955 GPU:Integrate GPU moduleShawn Xiao
1. Upstream 5.0.11p7 driver to kernel 2. Add the GPU configuration to imx6q.dtsi 3. Remove IRQF_DISABLED in GPU driver The IRQF_DISABLED has been removed from 4.1.0 kernel. To accomodate with the change, add version check logic and use 0x0 instead of IRQF_DISABLED from 4.1.0 kernel on. 4. Convert file->f_dentry->d_inode to file_inode() in GPU driver The file struct has changed since 3.19. Changed the usage in GPU driver too. 5. Add version check for CONFIG_PM_RUNTIME The CONFIG_PM_RUNTIME will never be used in 4.1.0 kernel. Add version check to avoid calling it in GPU driver. Signed-off-by: Shawn Xiao <b49994@freescale.com>