Bug 4123

Summary: S3 resume: no video - Dell X300 - 855GM
Product: Drivers Reporter: Lars Tobias Borsting (larstobi)
Component: Video(Other)Assignee: Rafael J. Wysocki (rjwysocki)
Status: REJECTED DUPLICATE    
Severity: high CC: acpi-bugzilla, larstobi, ogrizzo
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.14 Subsystem:
Regression: --- Bisected commit-id:
Attachments: Disassembled DSDT
Fixes compile errors in the DSDT
Output of dmidecode
Output of lspci
Extra verbose output of lspci (-vv)

Description Lars Tobias Borsting 2005-01-29 02:21:58 UTC
Distribution: Gentoo GNU/Linux
Hardware Environment: Dell X300 Laptop, BIOS version A08
Software Environment: 
Problem Description:
ACPI sleep states (standby, mem, disk) are not working.

standby: The laptop goes into standby, but immediately wakes up again.

mem: The laptop goes into suspend-to-mem fine, with this output on the screen:
         Stopping tasks: =====================|
         hci_usb 3-2:1.0 resume is unsafe!
         hci_usb 3-2:1.1 resume is unsafe!
         PM: Entering state.
         -
Then, when pressing the power button to wake it up again, nothing happens. The LED 
for the hard driver blinks occationally. The LCD screen is off. The laptop is 
neither reachable via ping.

I have also tried removing USB support in the kernel. The result is the same as 
above, but without the hci_usb messages.

disk: No reaction to "echo disk > /sys/power/state" at all. I have configured 
Software Suspend to "n" in the kernel.

Steps to reproduce:
standby:
   echo standby > /sys/power/state
mem:
   echo mem > /sys/power/state
   press power button
disk:
   echo disk > /sys/power/state
Comment 1 Lars Tobias Borsting 2005-01-30 16:45:35 UTC
Created attachment 4489 [details]
Disassembled DSDT

This DSDT is broken. Apply the attached patch (byteacc) to make it compile, and
to get the battery and thermal working.
Comment 2 Lars Tobias Borsting 2005-01-30 16:48:54 UTC
Created attachment 4490 [details]
Fixes compile errors in the DSDT

This patch simply makes the built-in DSDT compile with the Intel ACPI compiler,
and make the battery and thermal working.
Comment 3 Lars Tobias Borsting 2005-01-30 16:49:34 UTC
I have fixed the DSDT and compiled it with Intel's ACPI compiler, and fixed 1 
error which is changing a DWordAcc to ByteAcc. This is a common solution to get 
the battery and thermal to function. This fix didn't solve the suspend issues.

I have found an operating system name length check in the DSDT. It checks for 
the lengths 0x14 and 0x27, which probably are "Microsoft Windows XP" and 
"Microsoft WindowsME: Millennium Edition". Because of this I have tried to pass 
acpi_os_name="Microsoft Windows XP" to the kernel on boot. The only difference 
in "echo mem > /sys/power/state" is that when I press the power button to wake 
it up, it starts, still no screen, blinks a few times on the hard drive LED and 
powers off after some seconds.

It still doesn't respond to "echo disk > /sys/power/state".

There is a slight difference in "echo standby > /sys/power/state" instead of 
blinking the screen for 1 second, it blinks the screen for a tenth of a second. 
Very odd.
Comment 4 Lars Tobias Borsting 2005-01-30 17:06:54 UTC
Here is the /var/log/syslog output when I suspend to mem:

kernel: PM: Preparing system for suspend
init: Switching to runlevel 0
kernel: Kernel logging (proc) stopped.
kernel: Kernel log deamon terminating.
exiting on signal 15

I haven't found out what error code 15 means yet.
Comment 5 Richard Torkar 2005-04-11 07:08:50 UTC
I have an X300 with latest BIOS. I use Ubuntu 5.04 and kernel 2.6.10-5-386. I
tweaked my DSDT which contained one error and placed the altered DSDT last in my
initrd.

I have working suspend to disk. Suspend to ram doesn't work. For some reason the
screen is black and can't be started again. The laptop seems to be up and
running (if I type "shutdown -h now" it shuts down), but I can't see a thing on
my screen. For some reason Ctrl-Alt-F1 -> Alt-F7 can't bring up the LCD screen.

Might have something to do with this bug? Any pointers about this screen bug is
wholeheartedly accepted! :)

Comment 6 Jakob Schi 2005-06-17 01:12:28 UTC
Richard: The screen bug might be bug 3203 (if you have an nVidia card).
/Jakob
Comment 7 Lars Tobias Borsting 2005-06-17 03:49:07 UTC
Created attachment 5181 [details]
Output of dmidecode
Comment 8 Lars Tobias Borsting 2005-06-17 03:51:37 UTC
Created attachment 5182 [details]
Output of lspci
Comment 9 Lars Tobias Borsting 2005-06-17 03:56:01 UTC
Created attachment 5183 [details]
Extra verbose output of lspci (-vv)
Comment 10 Lars Tobias Borsting 2005-06-17 04:08:37 UTC
Jakob: the Dell X300 only comes with an integrated Intel 82852/855GM graphics 
card.
Comment 11 Len Brown 2005-08-17 10:02:17 UTC
Please verify that you've got the latest BIOS for the system.
Please try the workarounds in Documentation/power/video.txt
Please verify this is still an issue in 2.6.13, and see if
you can try the latest X, or at least the latest X video driver.
Comment 12 Lars Tobias Borsting 2005-08-17 20:01:24 UTC
I am using xorg-x11 version 6.8.2-r2 whithin Gentoo GNU/Linux, which is the 
latest xorg-x11 for Gentoo at the time.

Changing from kernels 2.6.(10|11|12) to 13-rc6 made no difference.

I also have the latest system BIOS from Dell, which is A08 from september 2004.

Some new info: I can get video from the console when using X11. Problem is that 
X11 crashes, so it is of little use. Here is the error message in the console 
after a "echo mem > /sys/power/state" from within X11:

-- begin --
Fatal server error:
EnterVT failed for screen 0

Please consult the X.Org Foundation support etc.

The application 'gnome-session' lost its connection to the display :0.0;
most likely the X server was shut down or you killed/destroyed the application.
ICE default IO error handler doing an exit(), pid = 6257, errno = 0
xinit: connection to X server lost.

waiting for X server to shut down Window manager warning: Lost connection to the 
display ':0.0';
most likely the X server was shut down etc.
gnome-panel: Fatal IO error 104 (Connection reset by peer) on X server :0.0.
ICE default IO error handler doing an exit(), pid = 6325, errno = 0
-- end --

It then immediately goes to vt1 (console) and shows the command prompt. From 
there I can start X11 again.

I also get a message during suspending; "ACPI: PCI interrupt for device 0000:00:
1f.5: disabled". Which is the onchip Intel AC'97 Audio Controller.

In /var/log/Xorg.log I can see the following entries:
-- begin --
(WW) I810(0): Successfully set original devices
(II) I810(0): xf86UnbindGARTMemory: unbind key 1
(II) I810(0): xf86UnbindGARTMemory: unbind key 0
(WW) Open APM failed (/dev/apm_bios) (No such file or directory)
(WW) I810(0): Extended BIOS function 0x5f64 failed.
(WW) I810(0): SetDisplayDevices call failed, writing config directly to SWF0.
(WW) I810(0): Failed to switch to configured display devices

Fatal server error:
EnterVT failed for screen 0

Please consult the The X.Org Foundation support etc.

(WW) I810(0): Successfully set original devices
-- end --

Passing acpi_sleep=s3_mode to the kernel makes no difference. Also, I have tried 
passing acpi_sleep=s3_bios to the kernel. What happens whith this parameter is 
that when suspending from X11 it will not resume. It will blink the power switch 
LED and some kind of clicking sound goes on and on. The exact same thing happens 
with acpi_sleep=s3_bios,s3_mode. I have also tried VBEtool whithout success.

Is there anything I can try next?
Comment 13 Lars Tobias Borsting 2006-01-26 12:00:42 UTC
There is a workaround for the problem that recently actually worked for me. The 
trick is to run vbetool to save the video card state before resuming. Like with 
the following script:

--------------------------------------------
#!/bin/sh
# Make laptop sleep
vbetool vbestate save > my_vbestate_file
echo -n "mem" > /sys/power/state

# Wake up laptop
vbetool post
vbletool vbestate restore < my_vbestate_file
--------------------------------------------

I used vbestate version 0.3 and kernel 2.6.14.
Comment 14 Len Brown 2006-08-09 20:46:32 UTC
Video restore on resume from S3 is a BIOS or video driver issue,
not an ACPI issue.  Moving to drivers/video.
Comment 15 Rafael J. Wysocki 2006-09-28 16:14:33 UTC

*** This bug has been marked as a duplicate of 7225 ***