l2_hsic issue
l2_hsic running amok (GT-P7500, GT-P7501) is ONE considerable reason for abnormal battery drain.
The so far known counter measures (HC, Stiffmeister + its xda derivate, WiFi-ROM) do not comply to my requests:
- CM10.1 nightlies
- 3G usage
- no l2_hsic hassle
l2_hsic root cause
Analysis of kmsg files provide a consistent pattern. Function if_usb_suspend(..) from modem_link_device_hsic.c does not call wake_lock_timeout(..) in wakelock.c in case of l2_hsic is running amok.
The missed call to wake_lock_timeout is obviously caused by a non cancellable USB-connection.
It is a single non expiring wakelock, what makes trouble.
Inside of modem_link_device_hsic.c I lost track on further explanations.
Candidate to fix the issue
Since I cannot correct the root cause, I tried to fix its consequence.
Basis is the current pershoot P4 CM10.1 kernel.
There are a few spots in its source code, where one could obtain the so called prevent_suspend_time of a l2_hsic wakelock.
A monitor is installed in such place. It triggers, when a l2_hsic wakelock’s individual prevent_suspend_time exceeds >10s (empirical value).
In this case the function wake_lock_timeout is called, which ignites the wakelock’s expiration.
Next the trigger is reset and the monitoring becomes active again.
As a second and measure of last resort the tab is shutdown, once l2_hsic’s total prevent_suspend_time exceeds >1h (never happened so far).
All these events are logged:
--> /proc/grzwolf shows current status
--> /proc/kmsg is extended by a couple of messages
Verification
The described modified kernel was installed on my Tab months ago.
Since then DS works perfect to me.
Furthermore I did not experience any side effects.
This kernel-mod had been announced at
http://www.android-hilfe.de/samsung-...ml#post5550736
Meanwhile the kernelmod is integrated:
BeeGee(Ganbarou), AAccount(A1 Kernel), kasper_h(Team Infamous/AOKP) and twa_priv(CM10.1/SGT7)
Preconditions for installation
- the kernelmod applies only for P4 devices (GT-P7500, GT-P7501)
- no need to contiue, if you don’t have a l2_hsic issue
- if you continue, you should know what you are doing
- I don’t take any warranty
- after flashing a Nightly ROM, the kernelmod needs to be installed again
- CM10.1 is installed on P4 according to the OP of thread http://forum.xda-developers.com/show...23&postcount=1
Kernelmod installation
- comply to the preconditions above
- within CWM make a Nandroid backup of a running isntallation
- copy 'P4 kernel' (see downloads below) to your Tab
- install 'P4 kernel modified' within CWM and check functionality after booting up
- if not ok, restore in CWM your Nandroid backup
Credits
- pershoot (Kernel)
- MapleSyrup (Kernel build)
- nakedninja42 (CM10.1 Installation)
Changelog
Rev. 2013.04.10-19.44
first release
Downloads
- CWM flashable kernel zip, Rev. 2013.04.10-19.44
- md5 sum of kernel zip
- source code
- readme source code
l2_hsic running amok (GT-P7500, GT-P7501) is ONE considerable reason for abnormal battery drain.
The so far known counter measures (HC, Stiffmeister + its xda derivate, WiFi-ROM) do not comply to my requests:
- CM10.1 nightlies
- 3G usage
- no l2_hsic hassle
l2_hsic root cause
Analysis of kmsg files provide a consistent pattern. Function if_usb_suspend(..) from modem_link_device_hsic.c does not call wake_lock_timeout(..) in wakelock.c in case of l2_hsic is running amok.
The missed call to wake_lock_timeout is obviously caused by a non cancellable USB-connection.
It is a single non expiring wakelock, what makes trouble.
Inside of modem_link_device_hsic.c I lost track on further explanations.
Candidate to fix the issue
Since I cannot correct the root cause, I tried to fix its consequence.
Basis is the current pershoot P4 CM10.1 kernel.
There are a few spots in its source code, where one could obtain the so called prevent_suspend_time of a l2_hsic wakelock.
A monitor is installed in such place. It triggers, when a l2_hsic wakelock’s individual prevent_suspend_time exceeds >10s (empirical value).
In this case the function wake_lock_timeout is called, which ignites the wakelock’s expiration.
Next the trigger is reset and the monitoring becomes active again.
As a second and measure of last resort the tab is shutdown, once l2_hsic’s total prevent_suspend_time exceeds >1h (never happened so far).
All these events are logged:
--> /proc/grzwolf shows current status
--> /proc/kmsg is extended by a couple of messages
Verification
The described modified kernel was installed on my Tab months ago.
Since then DS works perfect to me.
Furthermore I did not experience any side effects.
This kernel-mod had been announced at
http://www.android-hilfe.de/samsung-...ml#post5550736
Meanwhile the kernelmod is integrated:
BeeGee(Ganbarou), AAccount(A1 Kernel), kasper_h(Team Infamous/AOKP) and twa_priv(CM10.1/SGT7)
Preconditions for installation
- the kernelmod applies only for P4 devices (GT-P7500, GT-P7501)
- no need to contiue, if you don’t have a l2_hsic issue
- if you continue, you should know what you are doing
- I don’t take any warranty
- after flashing a Nightly ROM, the kernelmod needs to be installed again
- CM10.1 is installed on P4 according to the OP of thread http://forum.xda-developers.com/show...23&postcount=1
Kernelmod installation
- comply to the preconditions above
- within CWM make a Nandroid backup of a running isntallation
- copy 'P4 kernel' (see downloads below) to your Tab
- install 'P4 kernel modified' within CWM and check functionality after booting up
- if not ok, restore in CWM your Nandroid backup
Credits
- pershoot (Kernel)
- MapleSyrup (Kernel build)
- nakedninja42 (CM10.1 Installation)
Changelog
Rev. 2013.04.10-19.44
first release
Downloads
- CWM flashable kernel zip, Rev. 2013.04.10-19.44
- md5 sum of kernel zip
- source code
- readme source code