The code could be mainlined if Google were willing to consider that their wakelock approach was
suboptimal and adapt to a more reasonable one. This could be done without breaking existing
userspace interfaces.
I'm not aware of any significant interaction between the Android project and the kernel
developers three years ago - I first checked out the Android kernel git tree a little under two
years ago, which was the first I'd heard of the wakelock infrastructure despite having been
active in the Linux power management arena for rather longer than that.
A little over 18 months ago at LRL USA, Robert Love talked about how Android were keen to
avoid the perception of just dumping code over the wall but didn't really argue with my
suggestion that so far the kernel side of things was effectively that. The wakelock patches were
first posted to the linux-pm list on the 13th of January 2009, which is just over a year ago. http://lwn.net/Articles/318611/ gives a good overview of how they were received - there's
basically no buy in, even from other developers in the embedded Linux field. The last posting of
them was in May of the same year.
I can't find anything to support your assertion that this has been a long term process - the major
sticking point (ie, wakelocks) were posted for public review a year ago and most of the
substantive issues people had with them weren't addressed at all in the four months of
intermittent discussion that followed. If the entire world suggests that you do something in some
other way and you refuse to, that doesn't constitute a genuine effort to work with them. Nokia
have managed to obtain the same level of power management without such invasive changes,
so any assertion that wakelocks are required for Android to achieve its goals seem pretty
baseless.