ACPI: thinkpad-acpi: wakeup on hotunplug reporting
commitbdb797b618817fb3df5d59fd8d8d5d9958507842
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>
Mon, 12 Nov 2007 18:13:39 +0000 (12 16:13 -0200)
treebcb01300a71c17a90b3eb6277138d523f6d6bb29
parentdf8464a7ad7982f6dae71dae04bb95be34d5ecff
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