aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mxc/gpu-viv
Commit message (Collapse)AuthorAge
* ENGR00325794 [#1087] fix video memory mutex sharing issueXianzhong2014-08-06
| | | | | | | | | | | | the root cause is video memory mutex is not global variable, it will cause video memory managment problem with mixed 2D/3D/VG. kernel panic with multiple instances stress test running glesx_viv.sh. Date: Jul 31, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu (cherry picked from commit 9cec1cbd7ca2378e5c429f57d088d23d73d9c2f3)
* ENGR00311027 gpu:Limit the memory consumption for webglLoren Huang2014-07-03
| | | | | | | | | | | | | -When system memory is less than 200M, we will block further memory allocation for webgl. It's for pass webgl 1.0.2 conformance case conformance/rendering/multisample-cor ruption.html It's a temperory patch from vivante, should be removed in 5.0.11p2. Original patch name:5x_crash_patch.diff Date: Jul 03, 2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00317558 gpu:5.0.11p1 gpu driver kernel part integrationLoren Huang2014-06-24
| | | | | | | Date: Jun 16, 2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo (cherry picked from commit a6f5349968e494d67f9da339dad433b528ce52fe)
* ENGR00314119 [#1183] fixed database mutex multi-lock issueXianzhong2014-05-21
| | | | | | | | | | | | The abnormal flow with the monkey test freeze problem is as below: gckKERNEL_DestroyProcessDB--> aquire mutex --> gckCOMMAND_Detach(gckEVENT_FreeContiguousMemory) --> ___RemoveRecordFromProcessDB --> gckKERNEL_RemoveProcessDB --> aquire the same mutex the fix is to disable mutex lock when perform record destory operations Date: May 19, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu
* ENGR00312563-2 [#1183] remove duplicated mutex protectionXianzhong2014-05-21
| | | | | | | | | counterMutex is not necessary after refine dabase mutex remove counterMutex to avoid duplicated mutex protection Date: May 15, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu
* ENGR00312563-1 [#1183] fixed gpu database mutex issueXianzhong2014-05-21
| | | | | | | | | | | | | | | | | | | | | | | | | system hang in webGL conformance test with the following log galcore daemon D 807430b4 0 105 2 0x00000000 [<807430b4>] (__schedule+0x34c/0x720) from [<807438c8>] (schedule_preempt_disabled+0x14/0x20) [<807438c8>] (schedule_preempt_disabled+0x14/0x20) from [<80742328>] (__mutex_lock_slowpath+0x158/0x21c) [<80742328>] (__mutex_lock_slowpath+0x158/0x21c) from [<80742434>] (mutex_lock+0x48/0x4c) [<80742434>] (mutex_lock+0x48/0x4c) from [<8052aa68>] (gckOS_AcquireMutex+0x64/0x6c) [<8052aa68>] (gckOS_AcquireMutex+0x64/0x6c) from [<80534e0c>] (gckKERNEL_AddProcessDB+0x30/0x37c) [<80534e0c>] (gckKERNEL_AddProcessDB+0x30/0x37c) from [<8052d628>] (gckOS_Broadcast+0xe0/0xe8) [<8052d628>] (gckOS_Broadcast+0xe0/0xe8) from [<80536fa8>] (_TryToIdleGPU+0x124/0x12c) [<80536fa8>] (_TryToIdleGPU+0x124/0x12c) from [<8053887c>] (gckEVENT_Notify+0x520/0x574) [<8053887c>] (gckEVENT_Notify+0x520/0x574) from [<80540468>] (gckHARDWARE_Interrupt+0x60/0x70) [<80540468>] (gckHARDWARE_Interrupt+0x60/0x70) from [<805271cc>] (threadRoutine2D+0x20/0x78) [<805271cc>] (threadRoutine2D+0x20/0x78) from [<80045728>] (kthread+0xa4/0xb0) [<80045728>] (kthread+0xa4/0xb0) from [<8000e158>] (ret_from_fork+0x14/0x3c) this is integration issue introduced by database mutex enhancement, remove duplicated mutex unlock when remove database Date: May 15, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu
* ENGR00311595 gpu:Fix for gpu hang when running es11 conformanceLoren Huang2014-05-05
| | | | | | | | | | | | -ES11 conformance "Must Pass test" and "LogicOp Function test" failed b -This patch from vivante. Vivante Comments:"If gcdCMD_NO_2D_CONTEXT is Patch content -Remove context->dirty2D flag setting when gcdCMD_NO_2D_CONTEXT is set. Date: May 05, 2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00300876 [#ccc] Fix flick issue in GAL2D compositorYong Gan2014-05-04
| | | | | | | | | | | Move wl_surface_commit to work thread. Add wl_display_sync after commit buffer. Fix memory leak in wl_egl_window_resize. Enable triple buffer rendering. Disable skip worker in veglSwapWorker. Date: Apr 21, 2014 Signed-off-by Yong Gan <B45748@freescale.com>
* ENGR00310058 [#1155] gcvHAL_IMPORT_VIDEO_MEMORY is missing from VG ioctlsZhenyong Chen2014-04-30
| | | | | | | | | This patch is from Vivante (part of #831). It adds missing ioctls to VG kernel driver. Now VG355 can be enabled for X11. Date: Apr 24, 2014 Signed-off-by: Zhenyong Chen <b07273@freescale.com> Acked-by: Jason Liu
* ENGR00310742 [#1087] fixed gpu database query failureXianzhong2014-04-28
| | | | | | | | this patch fix gpu database query failure with gmem_info Date: Apr 28, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu
* ENGR00309915 [#1087] enhanced video memory mutexXianzhong2014-04-23
| | | | | | | | | | | | | | | | | | | | | | | | | this patch can fix NULL pointer issue in GPU kernel driver with the following log [<7f240438>] (gckEVENT_AddList+0x0/0x810 [galcore]) from [<7f239ebc>] (gckCOMMAND_Commit+0xf28/0x118c [galcore]) [<7f238f94>] (gckCOMMAND_Commit+0x0/0x118c [galcore]) from [<7f2362dc>] (gckKERNEL_Dispatch+0x120c/0x24e4 [galcore]) [<7f2350d0>] (gckKERNEL_Dispatch+0x0/0x24e4 [galcore]) from [<7f222280>] (drv_ioctl+0x390/0x540 [galcore]) [<7f221ef0>] (drv_ioctl+0x0/0x540 [galcore]) from [<800facd0>] (vfs_ioctl+0x30/0x44) The false code is at 0x217bc where the 0-pointer happens (r3 = 0) gcuVIDMEM_NODE_PTR node = (gcuVIDMEM_NODE_PTR)(gcmUINT64_TO_PTR(Record->info.u.FreeVideoMemory.node)); 217b8: e5953028 ldr r3, [r5, #40] ; 0x28 if (node->VidMem.memory->object.type == gcvOBJ_VIDMEM) 217bc: e5932000 ldr r2, [r3] 217c0: e5922000 ldr r2, [r2] 217c4: e152000a cmp r2, sl { gcmkVERIFY_OK(gckKERNEL_RemoveProcessDB(Event->kernel, Date: Apr 23, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu
* ENGR00309582 [#1129] fixed context switch issue on GC400TXianzhong2014-04-22
| | | | | | | | | | | fixed 3D context switch issue, the original comments from Vivante Set command->using2D correctly when gcdCMD_NO_2D_CONTEXT = 1 this patch is to fix Android mess UI issue on GC400T Date: Apr 21, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu
* ENGR00309261 Wrong version number in gpu 5.0.11Zhenyong Chen2014-04-22
| | | | | | | | | gcvVERSION_STRING is not consistent with gcvVERSION_BUILD. Vivante will provide a more flexible way in future release. Date: Apr 18, 2014 Signed-off-by: Zhenyong Chen <b07273@freescale.com> Acked-by: Jason Liu
* ENGR00292154-13 [#1141]Fix Kernel panic when contiguous memory used upLoren Huang2014-04-20
| | | | | | | | | | -When allocation failed, the node will be null. node->Virtual.type access will cause kernel panic when forceContiguous is enabled. Date: Apr 21,2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00308898 [#1135] fixed gc400t gpu hang with 5.0.11Xianzhong2014-04-21
| | | | | | | | | | | | | | | Virtual command buffer is forcibly enabled and causes gpu hang on i.MX6SLX - Android GPU hang - X11 GPU hang when run es2gears - Dfb 2D test case df_dok may cause gpu hang. The safe fix is to disable virtual command buffer temporarily Date: Apr 17, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu (cherry picked from commit f0aaa7521e0e58b4a7c9f104271343ab277fed56)
* ENGR00309294 [#1139] fixed Android boot failure with GPU 5.0.11Xianzhong2014-04-18
| | | | | | | | | | | | This issue could be reproduced on Android i.MX6SX with SD boot, the root cause is memory allocator pointer is not created correctly. gcsALLOCATOR is structure, while gckALLOCATOR is struct pointer Date: Apr 18, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu (cherry picked from commit 5000ad55f9a27cba472e09a94189fa7018bc58c3)
* ENGR00309070 [#1136] fixed GPU kernel random crash in 5.x driverXianzhong2014-04-17
| | | | | | | | | | | | | | | | | | | | database list corruption is caused by the extensive surface type(>=0x100) some random kernel crash issues will be introduced by data corruption this fix is to clear the extensive surface type with 0xFF mask, referring to gcvSURF_NUM_TYPES, /* Make sure this is the last one! */ /* Combinations. */ gcvSURF_NO_TILE_STATUS = 0x100, gcvSURF_NO_VIDMEM = 0x200, /* Used to allocate surfaces with no underlying vidmem node. In Android, vidmem node is allocated by another process. */ gcvSURF_CACHEABLE = 0x400, /* Used to allocate a cacheable surface */ Date: Apr 17, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu (cherry picked from commit 0f79bbd805402a8dcdf22bb119f99f05d8b9e4c3)
* ENGR00308899 [#1087] enhanced GPU database protectionXianzhong2014-04-17
| | | | | | | | | | | | the potential risk is found in special case when application exit, deleting record will cause the unexpected issue when process database is destoryed without atom protection the enhanced database patch should be applied to avoid the unexpected kernel issue Date: Apr 17, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu (cherry picked from commit 00ef75b4f50933749a2fd569488510ab760de4a9)
* ENGR00292154-12 gpu:Correct freescale memory allocation functionLoren Huang2014-04-17
| | | | | | | | | -Fix a issue during cma 5.0.11 integration. With this issue cma allocation will not return error when allocation failed. Date: Apr 17, 2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00308456-1 gpu:viante 5.0.11 kernel part integrationLoren Huang2014-04-16
| | | | | | | Integrated 5.0.11 kernel part change. Signed-off-by: Loren HUANG <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00301095 gpu:gpu hang when dma memory is used upLoren Huang2014-04-16
| | | | | | | | | | | | | | When dma zone memory used up, gckOS_AllocateCMAMemoryFSL() will try to free non paged memory cache and allocate again. Such operation will cause twice memory mutex request and cause gpu driver hang. The solution is free the memory mutex at first before trying to free non paged memory cache. Date: Feb 27, 2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo (cherry picked from commit 79ed8edd23f990f6c1429154c2ee773c83bfd72e)
* ENGR00308066 [#1091]Use spinlock_irqsave instead of spinlock in gpuLoren Huang2014-04-16
| | | | | | | | | | | Gpu kernel driver used spinlock in inerrupt context for debug purpose. So when enabled debug mode in gpu kernel driver, it may cause gpu kernel driver deadlock. Changed spinlock to spinlock_irqsave to resolve this issue. Patch from vivante. Date: Apr 11, 2014 Signed-off-by: Loren Huang <b02279@freescale.com>
* ENGR00306257 [#1027]fix system hang up issue caused by GPURichard Liu2014-04-16
| | | | | | | | | | This issue happens when multiple thread is trying to idle GPU at the same time, root cause is some wrong logic related with powerMutex which cause cpu still access GPU AHB register after GPU is suspend(clock off), that cause the bus lockup and make the whole system hang. Signed-off-by: Richard Liu <r66033@freescale.com> Acked-by: Jason Liu
* ENGR00303542-1 gpu:Update gpu kernel driver to 5.0.9.1 releaseLoren HUANG2014-04-16
| | | | | | | -Update gpu kernel driver to 5.0.9.1 release Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00303820 [#887] refine physical address check for external memoryXianzhong2014-04-16
| | | | | | | | | 2G above address will cause system reboot and fixed in original patch, error check code is added based on the original logic. Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu (cherry picked from commit 7d85c98bf781eb047c2000bd82ea7559c24a2446)
* ENGR00301095 gpu:gpu hang when dma memory is used upLoren Huang2014-04-16
| | | | | | | | | | | | | When dma zone memory used up, gckOS_AllocateNonPagedMemory() will try to free non paged memory cache and allocate again. Such operation will cause twice memory mutex request and cause gpu driver hang. The solution is free the memory mutex at first before trying to free non paged memory cache. Date: Feb 27, 2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00295218-3 gpu:Remove a potential deadlock in gpu vg kernel.Loren Huang2014-04-16
| | | | | | | | | | | -If _FlushMMU() return error, commitMutex and powerSemaphore will be locked forever. -Correct file attribute for gc_hal_base.h Date: Jan 15, 2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00295218-2 gpu: Allow allocate vg memory from small block reserved memoryLoren Huang2014-04-16
| | | | | | | | | | | | | -Most vg memory must requires reserved memory, when reserved memory is used up by 3d appliction. vg hardware can't be constructed successfully, which cause whole context creation failure(including 3d context). -Allow allocating vg memory from small block reserved memory can help such multi context cases. Date: Jan 15, 2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00294354 gpu:Using vitural memory cause AXI bus errorLoren Huang2014-04-16
| | | | | | | | | | | | | There are two possible reasons to cause AXI bus error 1.Allocate Tile status buffer from virtual memory. It seems gc2000 and gc880 doesn't support tile status buffer from virtual memory. 2.Stream buffer using very beginning gpu mmu address. In this condition, a faked non gpu mmu address maybe generated and fill into gpu which cause AXI bus error. [DATE]09-01-2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00292154-3 gpu:Adjust logic for non_paged memory cacheLoren Huang2014-04-16
| | | | | | | | | | non_page memory cache will only be freed when application exit. It will have waste when contiguous memory used up. Add logic to free it when contiguous memory is used up. [DATE]16-12-2013 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00292154-2 gpu:Fix random kernel panic for vg application.Loren Huang2014-04-16
| | | | | | | | | The root cause is kernelVirtual is not initialized which may cause incorrect kernel virtual address for vg. [DATE]16-12-2013 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00292154-1 gpu:Fix kernel panic when ctrl+c an applicationLoren Huang2014-04-16
| | | | | | | | | | | When application is using virtual memory, ctrl+c it will have kernel panic caused by null pointer. The reason is hardware struture already is freed when driver wants to use it. [DATE]16-12-2013 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00286762 gpu: enable swap rectange and fix a bugLoren Huang2014-04-16
| | | | | | | | | add eglSetSwapRectangleANDROID back and enable swap rectange, fix a swap rectange bug which will swap whole screen instead of the indicate swap region if region's left and top is (0,0). Signed-off-by: Richard Liu <r66033@freescale.com> Acked-by: Shawn Guo
* ENGR00289999 gpu: fixed gc880 invalid command state messageXianzhong2014-04-16
| | | | | | | | | | | | | | gpu kernel dump the error message when enable DEBUG mode: gckCONTEXT_Update(1493): State 0x0518 is not mapped. gckCONTEXT_Update(1493): State 0x0520 is not mapped. gckCONTEXT_Update(1493): State 0x0518 is not mapped. gckCONTEXT_Update(1493): State 0x0520 is not mapped. align gpu kernel driver to fix the error message Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu
* ENGR00284988 gpu:Sync gpu kernel driver codeLoren Huang2014-04-16
| | | | | | | | | | | | | Sync the code with commit 255ee1de in gpu-viv git. Mainly covered tickets: ENGR00288588 fixed system reboot when run webGL test ENGR00284988 Camera recording kernel crash on WFD source ENGR00283494 Modify Status to status to avoid build error ENGR00278179-1 query video memory with seperate types Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00274782 fixed gpu crash when baseAddress is not 0 or 2GXianzhong2014-04-16
| | | | | | | | | | The baseAddress of contiguousVidMem is the actual physical address which is not subtracted by gpu baseAddress, but the allocated physical address has been subtracted by gpu baseAddress in gckVIDMEM_Lock, so the invalid offset is produced and used to calculate the logical address. Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Shawn Guo
* ENGR00274478 fix gpu memory multi-lock failureXianzhong2014-04-16
| | | | | | | | | | this issue cause system boot with multi-user switch on JB4.3, root cause is gpu memory cannot be multi-locked in same process, gpu memory lock reference is added to allow multi-lock in kernel driver. Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu
* ENGR00277045-1 fix system reboot with video playbackXianzhong2014-04-16
| | | | | | | | | gpu virtual memory cannot be allocated for external use this issue occurs in ARD board with 2G above memory address Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu
* ENGR00283037 [gpu]Avoid gpu rmmod failure caused by regulator free failureLoren HUANG2014-04-16
| | | | | | | | | The failure is caused by duplicate regulator resource free. New devm_xxx API will free the resource automatically after remove() is called. Signed-off-by: Loren HUANG <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00278350 gpu:viante 4.6.9p13 kernel part integrationLoren HUANG2014-04-16
| | | | | | | Integrated 4.6.9p13 kernel part change. Signed-off-by: Loren HUANG <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00277333 gpu: Enable OT limitation for gc880Loren HUANG2014-04-16
| | | | | | | | Enable OT limitation for gc880, without this limitation 3D core may stall system bus when it is running at a very low clock. Signed-off-by: Loren HUANG <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00276023-3: mxc: gpu-viv: get regulator by dts instead of hard codeRobin Gong2014-04-16
| | | | | | | Use devm_regulator_get rather than regulator_get in gpu driver since we have use DTS. Signed-off-by: Robin Gong <b38343@freescale.com>
* ENGR00277201-2 gpu: potential memory leak when umapping vg memoryLoren HUANG2014-04-16
| | | | | | | Release the allocate memory properly to avoid memory leak. Signed-off-by: Loren HUANG <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00276705 Fix build error for wayland driver in Yocto environmentganyong2014-04-16
| | | | | | | Update the macro gcmPROFILE_DECLARE_ONLY to fix Werror(unused-local-typedefs) when gcdENABLE_PROFILING is not enabled. Signed-off-by Yong Gan <B45748@freescale.com>
* ENGR00275974-3 [iMX6x] Add busfreq support to the driversRanjani Vaidyanathan2014-04-16
| | | | | | | | Add request_bus_freq() and release_bus_freq() calls to the various drivers to ensure that the DDR and AHB are the requested frequency before the driver starts its task. Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
* ENGR00275739 Correct GPU delay implmentation in kernel codeLoren HUANG2014-04-16
| | | | | | | Original code can't handle delay larger than 1s. Signed-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
* ENGR00274473-4 mxc: gpu-viv: support regulator on/offAnson Huang2014-04-16
| | | | | | | Support PU regulator dynamical on/off on kernel v3.10. Acked-by: Jason Liu Signed-off-by: Anson Huang <b20788@freescale.com>
* ENGR00274056-4 mxc: gpu-viv: add gpu freq throttleAnson Huang2014-04-16
| | | | | | | | | add gpu freq throttle to protect SOC, when temperature is too high, lower gpu freq to 4/64, and gpu freq will restore when SOC cool down. Acked-by: Jason Liu Signed-off-by: Anson Huang <b20788@freescale.com>
* ENGR00240988: gpu: use dummy thermal notifier functions on 3.10 kernelShawn Guo2014-04-16
| | | | | | | The thermal notifier calls are not supported yet on 3.10 kernel. Let's use dummy functions for now. Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
* ENGR00240988: gpu: use reset API on 3.10 kernelShawn Guo2014-04-16
| | | | | | Use reset API to reset GPU on 3.10 kernel. Signed-off-by: Shawn Guo <shawn.guo@freescale.com>