Since the 3.5 merge window the Linux kernel has been supporting opportunistic suspend along the lines originally proposed in the famous Android suspend blockers patchset. It also allows the Android user space to prevent the system from suspending opportunistically and the interface for that is very similar to the one currently shipped by Android. However, the underlying mainline kernel code is different from the Android's one, which I am going to show in my presentation. In addition to that I will discuss the sequence of events that lead to the introductions of those features into the Linux kernel and their influence on the implementation.
My talk will be directed at developers interested in using the Android power management features in device drivers and applications, but it may be interesting to whoever wants to hear the "wakelocks" story told from an insider perspective.