ACPI: thinkpad-acpi: wakeup on hotunplug reporting
commitc1b4036c486bbafd42c2423162826801e4edf605
authorHenrique de Moraes Holschuh <hmh@hmh.eng.br>
Mon, 12 Nov 2007 00:18:30 +0000 (11 22:18 -0200)
committerHenrique de Moraes Holschuh <hmh@hmh.eng.br>
Tue, 26 Feb 2008 02:34:16 +0000 (25 23:34 -0300)
treee12d47795bdaa4f39e80a4476f4297e41d6d5902
parentd3ce478aa7df86dbe643be21b8f4a11b87b38951
ACPI: thinkpad-acpi: wakeup on hotunplug reporting

Handle some HKEY events that the firmware uses to report the reason for a
wake up, and to also notify that the system could go back to sleep (if it
woke up just to eject something from the bay, or to undock).

The driver will report the reason of the last wake up in the sysfs
attribute "wakeup_reason": 0 for "none, unknown, or standard ACPI wake up
event", 1 for "bay ejection request" and 2 for "undock request".

The firmware will also report if the operation that triggered the wake up
has been completed, by issuing an HKEY 0x3003 or 0x4003 event.  If the
operation fails, no event is sent.  When such a hotunplug sucessfull
notification is issued, the driver sets the attribute
"wakeup_hotunplug_complete" to 1.

While the firmware does tell us whether we are waking from a suspend or
hibernation scenario, the Linux way of hibernating makes this information
not reliable, and therefore it is not reported.

The idea is that if any of these attributes are non-zero, userspace might
want to do something at the end of the "wake up from sleep" procedures,
such as offering to send the machine back into sleep as soon as it is safe
to do so.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Documentation/thinkpad-acpi.txt
drivers/misc/thinkpad_acpi.c