summaryrefslogtreecommitdiff
path: root/drivers/mxc/gpu-viv/hal/os
AgeCommit message (Collapse)Author
2013-10-25ENGR00284988 Camera recording kernel crash on WFD sourcejb4.3_1.0.0-gaRichard Liu
Fix kernel crash issue meet when do 720p Camera recording on WFD source side, the crash is related with timer schedule, fixed by add protection code in gckOS_StartTimer function. Kernel crash log: [<c004ffec>] (__bug+0x1c/0x28) from [<c00a7e00>] (queue_delayed_work_on+0x10c/0x148) [<c00a7e00>] (queue_delayed_work_on+0x10c/0x148) from [<c046f4d0>] (gckOS_StartTimer+0x44/0x84) [<c046f4d0>] (gckOS_StartTimer+0x44/0x84) from [<c047f4ac>] (gckHARDWARE_SetPowerManagementState+0xa24/0xa5c) [<c047f4ac>] (gckHARDWARE_SetPowerManagementState+0xa24/0xa5c) from [<c046e608>] (gckOS_Broadcast+0xb8/0xe8) [<c046e608>] (gckOS_Broadcast+0xb8/0xe8) from [<c0475734>] (_TryToIdleGPU+0xd8/0x18c) [<c0475734>] (_TryToIdleGPU+0xd8/0x18c) from [<c0476cdc>] (gckEVENT_Notify+0x2dc/0x4c8) [<c0476cdc>] (gckEVENT_Notify+0x2dc/0x4c8) from [<c047d494>] (gckHARDWARE_Interrupt+0x58/0x68) [<c047d494>] (gckHARDWARE_Interrupt+0x58/0x68) from [<c04693a8>] (threadRoutine+0x20/0x78) [<c04693a8>] (threadRoutine+0x20/0x78) from [<c00ad0c8>] (kthread+0x80/0x88) [<c00ad0c8>] (kthread+0x80/0x88) from [<c004d408>] (kernel_thread_exit+0x0/0x8) Signed-off-by: Richard Liu <r66033@freescale.com> Acked-by: Jason Liu
2013-10-23ENGR00278452 PU: fix system hang if run Audio loop testRobin Gong
cpufreq and pu power management will oprate the same register, it looks should keep them operating in order not concurrent. Then use the cpufreq mutex in xPU driver to make sure. Another code bug is in pu power management which base regulator framework, we set the reister directly not regulator, then there is the chance set_volatage will miss the chance if this time voltage setting as the last time setting before PU disable, but we have to do this, so add regulator_sync_voltage to force sync the voltage setting. The drawback is setting twice... Note: This patch is temporary and supposed to be replaced it once we find the root cause. Signed-off-by: Robin Gong <b38343@freescale.com> Acked-by: Jason Liu
2013-09-18ENGR00278701 use alloc_pages instead of alloc_pages_exactRichard Liu
alloc_pages_exact is added by Vivante in gpu git commit e3debfdf4c3f29519ee66d60ac9b5e4db4c41026. alloc_pages_exact is more easy make memory fragment, video playback and camera recording case need large physical continue memory, using alloc_pages_exact will easy make memory fragment and no large physical continue memory, it will impact video playback and camera case. Signed-off-by: Richard Liu <r66033@freescale.com>
2013-08-23ENGR00274478 fix gpu memory multi-lock failureXianzhong
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
2013-08-14ENGR00274782 fixed gpu crash when baseAddress is not 0 or 2GXianzhong
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
2013-07-02ENGR00263482 fix random dma flush hang in monkey testXianzhong
The random hang is still found in one SabreSD RevB board Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Lily Zhang
2013-06-28ENGR00265130 gpu:Correct section mismatch in gpu kernel driverLoren HUANG
-Remove the __devinit for suspend/resume function. -Replace __devinit to __devexit for remove function. Cherry-pick from 3.5.7 branch. Signed-off-by: Loren HUANG <b02279@freescale.com> Acked-by: Lily Zhang
2013-06-28ENGR00264288-1 [GPU]Integrate 4.6.9p12 release kernel part codeXianzhong
Integrate 4.6.9p12 release kernel part code. Signed-off-by: Loren Huang <b02279@freescale.com> Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Lily Zhang
2013-06-28ENGR00264275 [GPU]Correct suspend/resume calling after adding runtime pm.Loren HUANG
After enabling runtime pm the suspend/resume entry is changed. -Add new entry for suspend/resume in runtime pm frame work. -Add static define for all runtime pm function. Cherry-pick from 3.5.7 kernel branch. Signed-off-by: Loren HUANG <b02279@freescale.com> Acked-by: Lily Zhang
2013-06-28ENGR00262748 Clean up regulator code for 3.5.7Loren HUANG
Remove gpu_regulator since 3.5.7 doesn't need it. Cherry-pick from 3.5.7 branch. Signed-off-by: Loren HUANG <b02279@freescale.com> Acked-by: Lily Zhang
2013-06-28ENGR00261814-4 gpu: use new PU power on/off interfaceRobin Gong
use new PU power on/off interface in GPU driver Cherry-pick from 3.5.7 branch. Signed-off-by: Robin Gong <b38343@freescale.com> Acked-by: Lily Zhang
2013-06-18ENGR00259411-3 fixed 073-base_cl6614_Add_a_gcdSUPPRESS_OOM_MESSAGEXianzhong
Add a gcdSUPPRESS_OOM_MESSAGE build option which can be used to enable an out-of-memory message in kernel. Signed-off-by: Loren Huang <b02279@freescale.com> Fixed Conflicts: drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c Acked-by: Lily Zhang
2013-06-08ENGR00265465 gpu:Add global value for minimum 3D clock exportLoren Huang
Add global value gpu3DMinClock so that minimum 3D clock can be change by user. When gpu min clock is too low, it may cause IPU starvation issue in certain case. Use echo x > /sys/module/galcore/parameters/gpu3DMinClock to change it. Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2013-05-30ENGR00259411-2 073-base_cl6614_Add_a_gcdSUPPRESS_OOM_MESSAGE_build_option_whichLoren Huang
Add a gcdSUPPRESS_OOM_MESSAGE build option which can be used to enable an out-of-memory message in kernel. Signed-off-by: Loren Huang <b02279@freescale.com> Conflicts: drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c Acked-by: Lily Zhang
2013-04-18ENGR00259411 remove __GFP_NOWARN in gpu memory allocatorXianzhong
More information can be dumped when lower-mem killer is triggered Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Lily Zhang
2013-03-15ENGR00254378 Upgrade gpu4.6.9p11.1 for Android JB4.2.2_GAXianzhong
This is linux kernel part of gpu4.6.9p11.1 upgrade. Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Lily Zhang
2013-03-05ENGR00252727-2 [GPU]Power on VG core if there is only VG core in SoCLoren Huang
-Power on VG core to makesure VG can be initalized if there is only VG core in SoC. -Power off VG core after initalization is done. -Adjust VG power and clock state to match above changing. Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2013-02-22ENGR00251005 [gpu]4.6.9p11 kernel code integrationLoren Huang
-4.6.9p11 kernel code integration -Additionally release runtime pm and regulator when destory gpu driver to avoid reference count mismatch. Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2013-01-29ENGR00242201-3 gpu: Makeup GPU driver for kernel 3.5.7Loren HUANG
Signed-off-by: Loren HUANG <b02279@freescale.com> Acked-by: Lily Zhang
2013-01-29ENGR00241739-2 gpu: Enable thermal hot notification in gpu driverRong Dian
Using notify mechanism instead of global variable to trigger gpu3d clock change through thermal driver Signed-off-by: Rong Dian <b38775@freescale.com> Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2013-01-25ENGR00240988-12 Enable GPU hardware reset for 3.5 kernelLoren HUANG
Cherry-pick from imx_3.5.7 branch. Signed-off-by: Loren HUANG <b02279@freescale.com> Acked-by: Lily Zhang
2013-01-25ENGR00240988-10 Add runtime pm function call in gpu driverLoren HUANG
Cherry-pick from imx_3.5.7 branch. -Add runtime pm function. -Set bus frequency to high when gpu power is on. Signed-off-by: Loren HUANG <b02279@freescale.com> Acked-by: Lily Zhang
2013-01-25ENGR00240988-5 Update gpu code to support 3.5 kernelLoren HUANG
Cherry-pick from imx_3.5.7 branch. -Comment regulator setting code temperarily for 3.5 kernel. -Adjust clock setting code based on new clock framework. -Disable dynamic frequency change feature as it depends on thermal driver. -Use DTS to get reserved memory information. -Comment cpu check code for 3.5 kernel. -Comment GPU reset code for 3.5 kernel. Signed-off-by: Loren HUANG <b02279@freescale.com> Acked-by: Lily Zhang
2013-01-05ENGR00238947 [GPU]Integrate Vivante 4.6.9p10 gpu driver kernel part codeLoren Huang
Integrate both 4.6.9p9.1 and 4.6.9p10. Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2012-11-15ENGR00233452 Integrate 4.6.9p9 GPU kernel part driverLoren Huang
Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2012-10-16ENGR00229321 Integrate GPU 4.6.9p8 kernel part driverLoren Huang
Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2012-09-29ENGR00225735-3 GPU: add gpu regulator disable/enable in gpu driverRobin Gong
add gpu regulator management in gpu driver Signed-off-by: Robin Gong <b38343@freescale.com> Acked-by: Lily Zhang Signed-off-by: Robin Gong <b38343@freescale.com>
2012-09-12ENGR00222253 Merge vivante 4.6.9_p7 kernel part codeLoren Huang
Merge vivante 4.6.9 p7 kernel part code. Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2012-08-10ENGR00212489-1 viv_GPU: add reserved memory account handler.Zhang Jiejing
the original low memory killer only take care of system memory accounting, but for so large shared memory occupy by GPU, and each process memory killer account become unfair, very large 3D game will not killed firstly if it going to background. Add this account to let real large memory user get killed if going to background eg, the "angry bird Space" will acquire 68,215,360 GPU memory for 1-6 toll-gate. The test show it can quicker recovery from memory shortage situation, since it's very like to be killed after add so much GPU memory for such 3D game. Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com> Acked-by: Lily Zhang
2012-07-25ENGR00214404-1 Merge vivante 4.6.9_p4 kernel part codeLoren Huang
Merge vivante 4.6.9 kernel part code Updated clock management code Updated gpu reset code Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2012-07-20ENGR00214791-2 [MX6] GalCore gets baseAddress parameter for kernelLarry Li
Galcore reads baseAddress parameter from GPU resource set by kernel Signed-off-by: Larry Li <b20787@freescale.com> Acked-by: Lily Zhang
2012-07-20ENGR00213170-2 [MX6SL] Enable GPU driverLarry Li
Use allocated GPU resource to enable GPU. Memroy address on imx6sl board starts from 0x80000000 and GC320 can access [baseAddress, baseAddress + 2G) only without MMU. So to make GC320 work, baseAddres must be set to 0x80000000, and all address sent to GC320 must be a offset to baseAddress. GC355 doesn't need this baseAddress, that means it needs a real physcial adress, rather than the offset to baseAddress. Original code always change phsysical address to 'offset' before use it, no matter it is used by GC355 or GC320, so only one of them can work. Solution is to move address adjustion to arch specific part. So each core can get what it wants. Signed-off-by: Larry Li <b20787@freescale.com> Acked-by: Lily Zhang
2012-07-20ENGR00212489-1 viv_GPU: add reserved memory account handler.Zhang Jiejing
the original low memory killer only take care of system memory accounting, but for so large shared memory occupy by GPU, and each process memory killer account become unfair, very large 3D game will not killed firstly if it going to background. Add this account to let real large memory user get killed if going to background eg, the "angry bird Space" will acquire 68,215,360 GPU memory for 1-6 toll-gate. The test show it can quicker recovery from memory shortage situation, since it's very like to be killed after add so much GPU memory for such 3D game. Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com>
2012-07-20ENGR00209716-2 Revert "ENGR00209022 Update gpu clock management code"Loren Huang
This code is in 4.6.8 package. This patch will cause suspend/resume failure and data abort for vg applications. Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2012-07-20ENGR00209716-1 Merge vivante 4.6.8 kernel part codeLoren Huang
Merge vivante 4.6.8 kernel part code Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2012-07-20ENGR00209022 Update gpu clock management codeLoren Huang
-This patch from vivante.They need to bypass the reference count in clock management code as they may touch clock while they just want to change power state. Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2012-07-20ENGR00180624 Merge vivante 4.6.7p1 kernel part codeLoren Huang
Merge vivante 4.6.7p1 kernel part code Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2012-07-20ENGR00179642 Remove a workaround for suspend/resumeLoren Huang
Remove a workaround for suspend/resume: The workaround is turn on clock before gpu entering suspend. After clock code bug is fixed, this workaround becomes no necessary. Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2012-07-20ENGR00179485 fix CTS hang up issueRichard Liu
fix random hang up issue especially run CTS provided by Viv Signed-off-by: Richard Liu <r66033@freescale.com> Acked-by: Lily Zhang
2012-07-20ENGR00178642-1 gpu-viv: fix suspend/resume issue for #304Richard Zhao
Signed-off-by: Richard Zhao <richard.zhao@freescale.com> Acked-by: Lily Zhang
2012-07-20ENGR00177264 Merge vivante 4.6.6p2 kernel part codeLoren Huang
Merge vivante 4.6.6p2 kernel part code Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2012-07-20ENGR00177048 Merge vivante 4.6.6 kernel part codeLoren Huang
Merge vivante 4.6.6 kernel part code Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2012-07-20ENGR00176656:gpu-viv:separate gpu 2d and vg core clock and axi clock operationWu Guoxing
separate gpu 2d and vg core clock and axi clock operation Signed-off-by: Wu Guoxing <b39297@freescale.com> Acked-by: Lily Zhang
2012-07-20ENGR00175090 Update the fsl copyright of gpu kernel driver to 2012Huang Loren
Update the fsl copyright of gpu kernel driver to 2012 Signed-off-by: Huang Loren <b02279@freescale.com>
2012-07-20ENGR00175305:gpu-viv:don't open 2d clock when operate only on 3dWu Guoxing
mx6dl do not have shader clock, and the shader clock is used as 2d clock. so, operate differently for mx6q & mx6dl Signed-off-by: Wu Guoxing <b39297@freescale.com> Acked-by: Lily Zhang
2012-07-20ENGR00174654 Update gpu kernel driver to vivante 4.6.5 releaseb02279
Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2012-07-20ENGR00171949:gpu-viv: change from mutex to completion for waiting pm eventswu guoxing
viv code is using mutex to wait for pm events, kernel will see this as a dead lock and give a warrning, as the mutex can be hold for a long time. Signed-off-by: Wu Guoxing <b39297@freescale.com> Acked-by: Lily Zhang
2012-07-20ENGR0017124 Merge vivante 4.6.4 kernel driverLoren Huang
Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
2012-07-20ENGR00171259 mx6 Fix warning while remove GPU moduleLarry Li
Avoid necessary clk_disable operation Signed-off-by: Larry Li <b20787@freescale.com>
2012-07-20ENGR00170751 Enable clock gating while gpu core comes to idleLoren Huang
-Correct gc355 initial power state to poweroff. -Separate clock gating operation in function gckOS_SetGPUPower(). -Turn on clock while suspend GPU cores. -Remove clock switch in drv_open(). Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang