Bug 19412 - no wakeup via PS/2 keyboard on Linux, works on Windows
Summary: no wakeup via PS/2 keyboard on Linux, works on Windows
Status: CLOSED PATCH_ALREADY_AVAILABLE
Alias: None
Product: Power Management
Classification: Unclassified
Component: Hibernation/Suspend (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: power-management_other
URL:
Keywords:
Depends on:
Blocks: 7216
  Show dependency tree
 
Reported: 2010-10-01 07:28 UTC by Artem S. Tashkinov
Modified: 2011-03-03 01:31 UTC (History)
2 users (show)

See Also:
Kernel Version: 2.6.35
Subsystem:
Regression: No
Bisected commit-id:


Attachments
acpidump (followed by: Wrong checksum for generic table!) (36.46 KB, application/octet-stream)
2010-10-01 07:47 UTC, Artem S. Tashkinov
Details
lspci (1.59 KB, text/plain)
2010-10-01 08:48 UTC, Artem S. Tashkinov
Details

Description Artem S. Tashkinov 2010-10-01 07:28:36 UTC
My BIOS is set up to wake up a turned off computer upon keyboard press, this feature also works in Windows to wake up a computer after "Sleep" (software suspend).

Unfortunately in Linux keyboard doesn't wake up my PC after software suspend even though in this mode keyboard LEDs (usually numlock only) are still enabled.

I can provide any necessary hardware information.
Comment 1 Artem S. Tashkinov 2010-10-01 07:47:11 UTC
Created attachment 32172 [details]
acpidump (followed by: Wrong checksum for generic table!)
Comment 2 Len Brown 2010-10-01 08:38:59 UTC
This bug is filed against 2.6.35
Has this feature worked on any previous versions of Linux?

Please show the output from "cat /proc/acpi/wakeup"

BTW. what model is this system?
Comment 3 Artem S. Tashkinov 2010-10-01 08:48:38 UTC
Created attachment 32182 [details]
lspci

(In reply to comment #2)
> This bug is filed against 2.6.35
> Has this feature worked on any previous versions of Linux?
> 
> Please show the output from "cat /proc/acpi/wakeup"
> 
> BTW. what model is this system?

lspci output is attached, it's a desktop with Intel H55 chipset based motherboard.

cat /proc/acpi/wakeup

Device  S-state   Status   Sysfs node
P0P1      S4    *disabled
P0P3      S4    *disabled
P0P4      S4    *disabled
P0P5      S4    *disabled
P0P6      S4    *disabled
BR1E      S4    *disabled  pci:0000:00:1e.0
PS2K      S4    *disabled  pnp:00:09
UAR1      S4    *disabled  pnp:00:0a
EUSB      S4    *disabled
USB0      S4    *disabled  pci:0000:00:1d.0
USB1      S4    *disabled
USB2      S4    *disabled
USB3      S4    *disabled
USBE      S4    *disabled
USB4      S4    *disabled  pci:0000:00:1a.0
USB5      S4    *disabled
USB6      S4    *disabled
BR20      S4    *disabled  pci:0000:00:1c.0
BR21      S4    *disabled
BR22      S4    *disabled
BR23      S4    *disabled
BR24      S4    *disabled  pci:0000:00:1c.4
BR25      S4    *disabled  pci:0000:00:1c.5
BR26      S4    *disabled
BR27      S4    *disabled
Comment 4 Artem S. Tashkinov 2010-10-01 08:50:40 UTC
I've forgotten to mention that no kernel releases ever worked here (in regard to this little bug), I just added Linux 2.6.35 because it's what I'm currently running.
Comment 5 Rafael J. Wysocki 2010-10-01 20:29:04 UTC
Please try to run "echo PS2K > /proc/acpi/wakeup" (as root) and send the contents of this file after that.
Comment 6 Artem S. Tashkinov 2010-10-01 23:40:20 UTC
[root@localhost ~]# echo PS2K > /proc/acpi/wakeup
[root@localhost ~]# cat /proc/acpi/wakeup
Device  S-state   Status   Sysfs node
P0P1      S4    *disabled
P0P3      S4    *disabled
P0P4      S4    *disabled
P0P5      S4    *disabled
P0P6      S4    *disabled
BR1E      S4    *disabled  pci:0000:00:1e.0
PS2K      S4    *enabled   pnp:00:09
UAR1      S4    *disabled  pnp:00:0a
EUSB      S4    *disabled
USB0      S4    *disabled  pci:0000:00:1d.0
USB1      S4    *disabled
USB2      S4    *disabled
USB3      S4    *disabled
USBE      S4    *disabled
USB4      S4    *disabled  pci:0000:00:1a.0
USB5      S4    *disabled
USB6      S4    *disabled
BR20      S4    *disabled  pci:0000:00:1c.0
BR21      S4    *disabled
BR22      S4    *disabled
BR23      S4    *disabled
BR24      S4    *disabled  pci:0000:00:1c.4
BR25      S4    *disabled  pci:0000:00:1c.5
BR26      S4    *disabled
BR27      S4    *disabled
Comment 7 Len Brown 2010-10-02 03:01:57 UTC
after the change above, does wakeup from PS2 keyboard work?
Comment 8 Artem S. Tashkinov 2010-10-02 11:55:25 UTC
Yes, it now works.
Comment 9 Rafael J. Wysocki 2010-10-02 21:51:19 UTC
So you need to make your init scripts to apply the above workaround.

Wakeup devices are not enabled by default by the kernel.
Comment 10 Artem S. Tashkinov 2010-10-03 08:13:35 UTC
(In reply to comment #9)
> So you need to make your init scripts to apply the above workaround.
> 
> Wakeup devices are not enabled by default by the kernel.

Even if they are explicitly specified in BIOS as devices that are indeed wakeup events?

Can you please shed light on why Linux developers decided to ignore all wakeup devices, regardless their wakeup state specified by BIOS? Or Linux cannot yet reliably read this kind of information from BIOS?
Comment 11 Rafael J. Wysocki 2010-10-03 20:08:36 UTC
Basically, there are BIOSes that provide us with wrong information on that.
Comment 12 Artem S. Tashkinov 2010-11-26 12:48:33 UTC
BTW, In 2.6.36 this "bug" is fixed, even though unintentionally. I don't have to alter /proc/acpi/wakeup for my PS/2 keyboard to wake up this PC ;)

Note You need to log in before you can comment on or make changes to this bug.