Bug 7860 - Lenovo 3000 N100 fails to wakeup from suspend
Summary: Lenovo 3000 N100 fails to wakeup from suspend
Alias: None
Product: Power Management
Classification: Unclassified
Component: Hibernation/Suspend (show other bugs)
Hardware: i386 Linux
: P2 normal
Assignee: Rafael J. Wysocki
Depends on:
Blocks: 7216
  Show dependency tree
Reported: 2007-01-21 11:20 UTC by Richard Hughes
Modified: 2007-12-12 16:55 UTC (History)
2 users (show)

See Also:
Kernel Version: 2.6.19, 2.6.20rcX, linus
Regression: ---
Bisected commit-id:

lsmod output (2.71 KB, text/plain)
2007-01-21 11:22 UTC, Richard Hughes
dmesg output (22.66 KB, text/plain)
2007-01-21 11:22 UTC, Richard Hughes
dmesg with PM DEBUG (30.83 KB, text/plain)
2007-01-23 11:54 UTC, Richard Hughes
dsl file for my lenovo bios (165.46 KB, text/x-dsl)
2007-01-23 12:13 UTC, Richard Hughes
the _WAK method (1.90 KB, text/plain)
2007-01-29 18:16 UTC, Richard Hughes

Description Richard Hughes 2007-01-21 11:20:50 UTC
Most recent kernel where this bug did *NOT* occur:
n/a. No kernel apprears to work.

Fedora Core 6.

Hardware Environment:
Lenovo 3000 N100, type:0786-4HG
NVIDIA GeForce Go 7300 with nv driver.

Software Environment:
Standard FC6 install, with kernel from linus git tree.

Problem Description:
After suspend to ram (using pm-suspend, or just echo mem > /sys/power/state) the
laptop is unable to resume and appears hardlocked. The suspend goes well, the
computer powers down to sleep mode, but on resume the backlight controller goes
on (hardware controlled) and nothing more appears on the screen. ctrl-alt-del
does nothing, and the only thing to make the laptop do *anything* is a hard
power off. I don't know how to debug this as this laptop has no serial port, so
I cannot see any oops that may happen.
Please ask if you want any more information than I've attached, and I'll provide
it for you as soon as I can. Many thanks for any help with this.

Steps to reproduce:
1. Buy Lenovo 3000 N100 laptop
2. Suspend to RAM
3. Resume by pressing any key
Comment 1 Richard Hughes 2007-01-21 11:22:06 UTC
Created attachment 10147 [details]
lsmod output
Comment 2 Richard Hughes 2007-01-21 11:22:52 UTC
Created attachment 10148 [details]
dmesg output
Comment 3 Luming Yu 2007-01-23 06:44:19 UTC
please try to remove as many modules as possible before re-testing S3.
If no luck, please try to play with Speaker (since you don't have serial port)
by inserting the Beep code in the S3 resume code path. if you hear Beep when S3
resume, you can move on to the next place. If not, the issue is before the place
with just inserted Beep code. You need to do that until you get to the right
place of the S3 hang.
Comment 4 Luming Yu 2007-01-23 06:46:28 UTC
The following code is from Pavel.

#define BEEP \
       inb     $97, %al;       \
       outb    %al, $0x80;     \
       movb    $3, %al;        \
       outb    %al, $97;       \
       outb    %al, $0x80;     \
       movb    $-74, %al;      \
       outb    %al, $67;       \
       outb    %al, $0x80;     \
       movb    $-119, %al;     \
       outb    %al, $66;       \
       outb    %al, $0x80;     \
       movb    $15, %al;       \
       outb    %al, $66;
Comment 5 NPetr 2007-01-23 06:51:58 UTC
Hi, I have problems with ACPI on Lenovo N100 3000 too. See this bug: 
Comment 6 Richard Hughes 2007-01-23 10:30:36 UTC
Luming, where is the resume path assembly code? I've removed all the modules I
can, and still the resume hang happens. I'm pretty comfortable with assembly,
but I don't know where in the tree to look. Thanks.
Comment 7 Richard Hughes 2007-01-23 11:54:32 UTC
Created attachment 10162 [details]
dmesg with PM DEBUG

I've attached the output of dmesg when CONFIG_PM_DEBUG=y and CONFIG_PM_TRACE=y
- hope this helps in some way.
Comment 8 Richard Hughes 2007-01-23 12:13:26 UTC
Created attachment 10164 [details]
dsl file for my lenovo bios
Comment 9 Richard Hughes 2007-01-23 12:31:00 UTC
Using acpi_os_name="Microsoft Windows XP" also doesn't change things.
Comment 10 Richard Hughes 2007-01-23 13:05:38 UTC
I've tried the BEEP thing as detailed in http://lkml.org/lkml/2006/9/10/123 and
I get no beep sound on resume. I'm close to throwing this laptop against the
wall! :-)
Comment 11 Richard Hughes 2007-01-23 13:57:13 UTC
noapic and nolapic don't seem to make much difference either...
Comment 12 Pavel Machek 2007-01-23 23:55:46 UTC
Well, let's say that that "make the machine meet the wall at the high speed"
seems like quite an viable option to me? :-)

Try it with minimum set of modules (but I'm not sure if it will help). No, we do
not want that nvidia module around. noapic/nolapic were good tries...

I'm not sure if beeping is _guaranteed_ to work. Can you try inserting jmp
0xffff:0 early into resume, to force it to reboot? You are not using any
acpi_sleep= command line options, are you? (You should not).

Oh, and last but not least... does s2disk work for you? That's often the first
thing to debug.
Comment 13 Richard Hughes 2007-01-24 02:42:20 UTC
> make the machine meet the wall at the high speed...

It's got two more days; I've already had enough problems just changing the
backlight brightness...

> Try it with minimum set of modules...

Built with a minimum config (and as much stuff rmmod'd as possible), no binary
drivers of course.

> Can you try inserting jmp 0xffff:0 early into resume

No luck, either with jmp 0xffff, jmp 0x0 or lcall $0xffff,$0.
I've tried adding it just after wakeup_code_start which I guess has to be run first.

> does s2disk work for you?

Yes, echo -n disk > /sys/power/state produces a correct hibernate.
Suspend also does also work in Windows XP, but only God knows how ;-)
Thanks for your help.
Comment 14 Richard Hughes 2007-01-29 18:16:30 UTC
Created attachment 10220 [details]
the _WAK method

Does this _WAK method look correct to you guys?
Comment 15 Rafael J. Wysocki 2007-06-18 10:12:16 UTC
Can you please check the 2.6.22-rc5 kernel?
Comment 16 Richard Hughes 2007-06-19 05:48:10 UTC
Still nothing, even with git from today.
Comment 17 Rafael J. Wysocki 2007-08-08 09:36:48 UTC
Can you please run 's2ram -i' (http://en.opensuse.org/s2ram) and post the output?
Comment 18 Rafael J. Wysocki 2007-10-06 08:45:16 UTC
There are some important suspend-related fixes in the current Linus' tree.  Can you test the 2.6.23-rc9 kernel, or 2.6.23 final when it's out, please?

[I'm going to close this entry if there's no response in two weeks from now.]
Comment 19 Rafael J. Wysocki 2007-12-12 16:55:03 UTC
As I said, closing.

Please reopen if necessary, thanks.

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