arco/samsung-kernel-msm7x30 — pull request #14 by Christopher83 (2013-04-24 19:35:14+00:00)
Title: Ics 3.0 sod fix

Hi Arne,
these 3 commits, in particular the last one, solved the SOD problems that we had on our I9001 using CM9 RC4/5/6.
I made several attempts to circumscribe more precisely the point that caused the SOD and in the end I found that the real cause was the suspending procedure of Adreno 2D device driver (z180_platform_driver).
In some cases, being a synchronization issue, setting the clock of the gpu (kgsl_pwrctrl_pwrlevel_change) during the suspension, causing the hang.

I made a first attempt setting the gpu clock to 0 in the 2D gpu driver configuration (arch/arm/mach-msm/devices-msm7x30.c), as already adopted on the branch jb-3.0 and cm-10.1:
static struct kgsl_device_platform_data kgsl_2d0_pdata = {
.pwrlevel = {
{
- .gpu_freq = 192000000,
+ .gpu_freq = 0,
.bus_freq = 192000000,
},
},

After some time, seeing that already the SOD didn't happen anymore, I tried to understand where that change came from by looking on jb-3.0 branch.
At the end I found the patch (applied by you and CAF team on jb-3.0 branch) which included that change and the complete fix of the noticed bug, I finally applied it on ics-3.0 too with two other patches, surely very useful in ensuring the stability of the power management of that driver.
I hope that the damn sod won't happen anymore...

Thank you very much for your awesome work!