[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

ThinkPad 600, kernel 2.2.17pre6, and hibernation



This is just to inform ThinkPad 600 users that I
have tested the latest kernel, 2.2.17pre6, and can
report that SFAICT the hibernation problem has been
solved.

With kernel 2.2.15, when one would request hibernation
the machine would hang up for a few seconds, beep, and
then hibernate.  But the problem was more serious than
there being a delay: at the time of the beep the APM
software was also falsely carrying out a "resume"
sequence, with the result that the machine was not
properly prepared for hibernation.  The ThinkPad 600
needs to be prepared for sedation by stopping all
programs generating sounds, so that on resume they
will not attempt to make sounds before the ALSA
cs4236 driver has had a chance to restore the sound
chip register contents which are lost during a
sedation.  (Since release 0.5.8 the ALSA cs4236 driver
restores sound chip registers on resume.  The current
Debian alsa-base package includes the script
/etc/apm/event.d/alsa which  STOPs and CONTs sound
processes before and after sedate and resume.  I like
Debian.)

The release notes for Alan Cox's Linux 2.2.16pre5
describe changes to the APM driver designed to handle
an IBM ThinkPad BIOS bug.  The bug is that "Thinkpads
keep sending SUSPEND events until something else happens."
A quick look at the patch reveals that the 
APM_IGNORE_MULTIPLE_SUSPEND configuration option has been
removed and the driver will now reject multiple suspends
all the time.  This, we may presume, is what has fixed
the problem described above.

Thomas Hood



Reply to: