| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-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
|
|
|
|
|
|
|
| |
Date: Jun 16, 2014
Signed-off-by: Loren Huang <b02279@freescale.com>
Acked-by: Shawn Guo
(cherry picked from commit a6f5349968e494d67f9da339dad433b528ce52fe)
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
-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
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
-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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
| |
-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
|
|
|
|
|
|
|
| |
Integrated 5.0.11 kernel part change.
Signed-off-by: Loren HUANG <b02279@freescale.com>
Acked-by: Shawn Guo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
-Update gpu kernel driver to 5.0.9.1 release
Signed-off-by: Loren Huang <b02279@freescale.com>
Acked-by: Shawn Guo
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
-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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Integrated 4.6.9p13 kernel part change.
Signed-off-by: Loren HUANG <b02279@freescale.com>
Acked-by: Shawn Guo
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Use devm_regulator_get rather than regulator_get in gpu driver since we have
use DTS.
Signed-off-by: Robin Gong <b38343@freescale.com>
|
|
|
|
|
|
|
| |
Release the allocate memory properly to avoid memory leak.
Signed-off-by: Loren HUANG <b02279@freescale.com>
Acked-by: Shawn Guo
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Original code can't handle delay larger than 1s.
Signed-by: Loren Huang <b02279@freescale.com>
Acked-by: Shawn Guo
|
|
|
|
|
|
|
| |
Support PU regulator dynamical on/off on kernel v3.10.
Acked-by: Jason Liu
Signed-off-by: Anson Huang <b20788@freescale.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Use reset API to reset GPU on 3.10 kernel.
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
|