linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [2.6] i8042 module prevents APM suspend on ThinkPad 770
@ 2003-08-24 23:00 Charles Lepple
  2003-08-24 23:19 ` Charles Lepple
  0 siblings, 1 reply; 2+ messages in thread
From: Charles Lepple @ 2003-08-24 23:00 UTC (permalink / raw)
  To: linux-kernel; +Cc: Vojtech Pavlik

I think I isolated my ThinkPad 770's APM suspend problem[1] to the i8042 
driver. Basically, every time I try and suspend the laptop (apm -s, the 
lid switch, or the power/hibernate button), the laptop goes out to lunch 
for a little while (display is still on), and then prints "apm: suspend: 
Unable to enter requested state" after about 30 seconds.

Around 2.5.31 (continuing through 2.6.0-test3), I could get by with the 
old keyboard driver. However, in later kernels, unless I make the i8042 
driver a module, and (warning: kludge ahead) have the APM scripts remove 
and reinsert it before and after suspend, the APM BIOS rejects the 
suspend request.

Other subsystems, such as the UHCI USB HC driver, are properly shut down 
and restarted through the driver framework. Maybe the i8042 driver needs 
to do something similar?

Here are the relevant .config bits that make things work:

# Input device support
#
CONFIG_INPUT=y

#
# Userland interfaces
#
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
CONFIG_INPUT_EVDEV=y # <-- probably not necessary
# CONFIG_INPUT_EVBUG is not set

#
# Input I/O drivers
#
# CONFIG_GAMEPORT is not set
CONFIG_SOUND_GAMEPORT=y
CONFIG_SERIO=m
CONFIG_SERIO_I8042=m
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PARKBD is not set
# CONFIG_SERIO_PCIPS2 is not set

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=m
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set

CONFIG_SERIO and CONFIG_KEYBOARD_ATKBD could probably both be =y, as I 
had both modules loaded when suspend started to work again (although 
i8042 still had to be unloaded).

I will try some other configurations later (as well as 2.6.0-test4, 
although I didn't see any i8042 code changes in the -test4 announcement).

My only guess is that the i8042_timer routine is reading the data 
register after the APM BIOS expects the system to quiesce. I can't back 
that up quite yet, but I'll try and test that later.

Thanks to Stephen Rothwell and Alan Cox for convincing me that this 
regression wasn't due to any of the APM changes between 2.5.31 and 
2.5.32 :-)

[1] http://marc.theaimsgroup.com/?l=linux-kernel&m=105949030715144&w=4

-- 
Charles Lepple <ghz.cc!clepple>
http://www.ghz.cc/charles/



^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [2.6] i8042 module prevents APM suspend on ThinkPad 770
  2003-08-24 23:00 [2.6] i8042 module prevents APM suspend on ThinkPad 770 Charles Lepple
@ 2003-08-24 23:19 ` Charles Lepple
  0 siblings, 0 replies; 2+ messages in thread
From: Charles Lepple @ 2003-08-24 23:19 UTC (permalink / raw)
  To: linux-kernel

2nd paragraph should have been:

> In 2.5.31, I could get by with the old keyboard driver. However, in
> later kernels (continuing through 2.6.0-test3), unless I make the 
> i8042 driver a module, and (warning: kludge ahead) have the APM 
> scripts remove and reinsert it before and after suspend, the APM BIOS
> rejects the suspend request.

-C



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-08-24 23:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-08-24 23:00 [2.6] i8042 module prevents APM suspend on ThinkPad 770 Charles Lepple
2003-08-24 23:19 ` Charles Lepple

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).