public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Charles Lepple <clepple@ghz.cc>
To: linux-kernel@vger.kernel.org
Cc: Vojtech Pavlik <vojtech@suse.cz>
Subject: [2.6] i8042 module prevents APM suspend on ThinkPad 770
Date: Sun, 24 Aug 2003 19:00:36 -0400	[thread overview]
Message-ID: <3F494394.3020700@ghz.cc> (raw)

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/



             reply	other threads:[~2003-08-24 23:00 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-08-24 23:00 Charles Lepple [this message]
2003-08-24 23:19 ` [2.6] i8042 module prevents APM suspend on ThinkPad 770 Charles Lepple

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3F494394.3020700@ghz.cc \
    --to=clepple@ghz.cc \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vojtech@suse.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox