Hi John
An Android patch in the linaro-android-* branches seems to be broken in it's used of spinlocks. The patch is the one titled "Input: evdev - Add ioctl to block suspend while event queue is not empty."
This is generating lockdep warning as logged in this bug https://bugs.launchpad.net/linaro-landing-team-arm/+bug/1037565 and my analysis of the problem is in this comment: https://bugs.launchpad.net/linaro-android/+bug/1037565/comments/2
Making the wakeup driver use spin_unlock_irqsave everywhere for events_lock would solve the issue, but seems like the wrong thing.
A reimplementation of the evdev patch to avoid the issue might be possible, but not something I really have time for.
So my suggestion would be that we should reverted the patch in the linaro-android- branches and let upstream know about the issue. I've tested that reverting doesn't appear to cause problems.
This issue has only surfaced now because Jelly Bean calls the new evdev ioctls, but ICS didn't seem to.