[Discussion] Finally solving L2_hsic, rpm_hsic and tx_hsic wakelocks?
I've been encountering L2_hsic and a few other related wakelocks for months (even years), ever since updating my I9100T to ICS (which I did the minute custom ICS roms hit web). As some encounter a full 100% steady wakelock solved by restarting or unplugging charger in home screen or any other accidental act that seems to get rid of it for a while, the wakelocks I encountered were hundreds, thousands and even tens of thousands of short wakelocks. They come and go all the time so no quick solution helped. It's always accompanied by 'radio-interface' wakelocks and 'RILJ' partial wakelocks. The numbers reach 100+ in less than 20 minutes, and a full battery discharge (which is not more than 15-20 hours of almost no use) can reach 10000+ wakelocks (according to BBS). Needless to say battery life is just terrible.
Things I've tried and didn't work:
1. Various ROMs, Sammy/AOKP/CM based, ICS/JB based, no change (except CM10.1 nightly, will be explained later).
2. Various kernels.
3. Various modems and RILs.
4. Various settings, freezes, wipes, restarts. Tried wiping everything, formatting emmc, installing fresh clean stock with odin.
5. Turning off wifi/data, gps, google maps/latitude updates, sync etc.
6. Taking apart the phone and disconnecting the speaker module on which the callular and wifi antennas are placed.
Nothing helped, didn't even budge the numbers of the wakelocks.
The only thing that did make a change is installing CM10.1 nightly. For some reason, CM10.1 has significantly less of these wakelocks. It reaches around 1000-2000 count in a full charge cycle (which with minimal to moderate use can hold 2 days and have some battery left).
So I assumed CM did something right that got rid of these wakelocks.
I searched around and found out the l2_hsic wakelocks are generated by a kernel file "/drivers/misc/modem_if/modem_link_device_hsic.c" which is also responsible for rpm_hsic and tx_hsic wakelocks.
From there I went to CM git and with help from their IRC channel I found the source code for their version of this file:
Now I'm thinking that some investigation into this file and comparison between this version, stock version and GB version (GB roms didn't have this wakelock at all, everyone complaining about it said it started with ICS and didn't go away with JB) of this exact file may give us clues about what is the cause and how to solve it.
My idea was to export CM's file into a kernel that can be installed with samsung-based ROM and hope it solves the issue.
The problem is I'm not a dev, nor do I have the time to study up on programming/android developing to do all that, and am afraid that if I try to compile it by myself my lack of knowledge will result in a damaged kernel and a bricked phone. I don't even know if it's possible to just copy a file from CM's kernel into another kernel and compile it like that, it was just an idea.
I'd be happy if a talented dev here (with which XDA was blessed) would take on this project and investigate more and further into where my limited knowledge stops me from going.
Please share your thoughts here, if you have this issue then share it here to help keep the thread alive until a solution is found. If you have anything further to add, I'll be happy to hear.
Thanks and have a nice day