Re: Problem statement: Opportunistic suspend and i8042 wakeups
From: Alan Stern <stern@rowland.harvard.edu>
Date: 2011-10-11 00:10:20
On Mon, 10 Oct 2011, Daniel Drake wrote:
In my most recent set of patches I took the following approach: http://www.spinics.net/lists/linux-input/msg16599.html http://www.spinics.net/lists/linux-input/msg16600.html 1. The 'wakeup' property is enabled on the i8042, serio and input devices. Before going into suspend where input wakeups are desired, userspace must enable wakeup in sysfs on: i8042, serio0, the mouse input device, serio1, and the keyboard input device. 2. In the suspend/resume handlers, each of the three layers above checks to see if wakeups are enabled on its own device, and if so, the suspend/resume handlers effectively do nothing, avoiding the triple layer resetting described above. 3. The i8042 driver wakeup property is also used to call olpc_ec_wakeup_set() in order to tell the EC to wake up the CPU on input events when in suspend.
It's not clear why this should be connected to the "wakeup" property. In principle, even if the keyboard & mouse are not enabled for wakeup, you still want to avoid losing input events (if possible). Alan Stern