Solved it! To anyone else experiencing the same issue (as unlikely as that may be) the solution is to add a timeout to the gpio_kp wakelock in "/ drivers/input/misc/spio_matrix.c" (line 438). It hasn't stopped the button press, but it means that keypad input can't hold its wakelock forever, so the device will sleep again.
On Mar 27, 11:42 am, philhaz <phil...@gmail.com> wrote: > My HTC Hero has developed a fault that makes the system believe the > trackball is being constantly held. I managed to block this at the OS > level, but it still seems to be affecting power management (the device > never goes to sleep, so battery life is abysmal). Reading the > explanation below suggests that I would have to block this input at > the keypad driver level to prevent keypad-scan wakelocks. > > http://source.android.com/porting/power_management.html#androidPowerW... > > Examining "/proc/wakelocks" shows that "gpio_kp" has significantly > larger "active since", "total time" "sleep time" and "max time" values > than anything else, which supports my assumption that it is the kepad > driver keeping the phone awake. > > I have very little experience when it comes to C and Linux, so I'm > struggling to work out where and how to block these signals. I've > found the "input.h" file under "include/linux", and the problem key is > defined on line 393: > > #define BTN_MOUSE 0x110 > > But here is where I come unstuck. Any help would be greatly > appreciated! -- unsubscribe: android-kernel+unsubscr...@googlegroups.com website: http://groups.google.com/group/android-kernel