[ltp] Keyboard hang on resume from RAM

Daniel Stodden linux-thinkpad@linux-thinkpad.org
Wed, 16 Mar 2005 22:04:54 +0100


hi all.

regarding a well-known problem described on
http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-February/023962.html

as well as referring to my previous mail from today:
http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-March/025090.html

problem: resume from RAM leaves the AT keyboard interface in a corrupted
state. typical log entry:
Mar 16 13:41:37 localhost kernel: atkbd.c: Keyboard on isa0060/serio0
reports too many keys pressed.

the problem seems to be that many distributions configure acpid to
access /proc/acpi/sleep directly. though, this does not take the current
set of blacklisted modules, most importantly the usb host interfaces
into account. that used to work for me at least until 2.6.9, iirc 2.6.10
as well. before, i could keep uhci_hcd and ehci_hcd installed and resume
from S3 without problems.

seems it finally ceased to work on 2.6.11, causing an early hang on
resume.

the easiest way to work around the problem is to suspend both into S3
and S4 through the hibernate script, with a separate configuration for
suspend-to-ram (acpi_sleep, or sysfs_power_state, the latter currently
used by me) setting 'UnloadBlacklistedModules' to 'yes' in both
configurations. check the blacklist, then let acpid call "hibernate -F
<sleep_config>" for the button/sleep event.

hope that helps anyone. it seems to work for me. i've had this poblem
since i bought my thinkpad, and looking for a fix since then. before,
i've been experiencing keyboard hangs on approximately every 5th resume.
after taking better care for the hibernation blacklist, the problem
seems to have vanished.

kind regards,
daniel

-- 
Daniel Stodden
LRR     -      Lehrstuhl für Rechnertechnik und Rechnerorganisation
Institut für Informatik der TU München             D-85748 Garching
http://wwwbode.in.tum.de/~stodden         mailto:stodden@cs.tum.edu
PGP Fingerprint: F5A4 1575 4C56 E26A 0B33  3D80 457E 82AE B0D8 735B