[ltp] Re: Fedora Core 3 vs. Thinkpad X22 (2662-9BU) - reliable suspend/hibernate?

Borislav Deianov linux-thinkpad@linux-thinkpad.org
Wed, 24 Nov 2004 10:19:53 -0800


On Wed, 24 Nov 2004 06:05:03 +0000 (UTC) Brian D. Ropers-Huilman <bropers@cct.lsu.edu> wrote:
> Borislav Deianov said the following on 2004-11-23 23:58:
> | On Tue, 23 Nov 2004 16:32:17 +0000 (UTC) Charles E Taylor IV
> <tomalek@mindspring.com> wrote:
> |
> |>Power management:
> |>* ACPI locks the machine hard on resume.
> |
> | You might want to try appending "acpi_sleep=s3_bios" to the kernel
> | command line.
>
> Boris, what exactly is that kernel parm doing? Why are IBM BIOSes
> "broken?"

Below is the explanation from the kernel docs. S3 is the "suspend to
RAM" state. So nothing wrong with the BIOS, it's just a hack that
happens to help on Thinkpads.

Wishes,
Boris

----8<--------------


                Video issues with S3 resume
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  2003-2004, Pavel Machek

During S3 resume, hardware needs to be reinitialized. For most
devices, this is easy, and kernel driver knows how to do
it. Unfortunately there's one exception: video card. Those are usually
initialized by BIOS, and kernel does not have enough information to
boot video card. (Kernel usually does not even contain video card
driver -- vesafb and vgacon are widely used).

This is not problem for swsusp, because during swsusp resume, BIOS is
run normally so video card is normally initialized.

There are three types of systems where video works after S3 resume:

* systems where video state is preserved over S3. (Athlon HP Omnibook xe3s)

* systems where it is possible to call video bios during S3
  resume. Unfortunately, it is not correct to call video BIOS at that
  point, but it happens to work on some machines. Use
  acpi_sleep=s3_bios (Athlon64 desktop system)

* systems that initialize video card into vga text mode and where BIOS
  works well enough to be able to set video mode. Use
  acpi_sleep=s3_mode on these. (Toshiba 4030cdt)

* on some systems s3_bios kicks video into text mode, and
  acpi_sleep=s3_bios,s3_mode is needed (Toshiba Satellite P10-554)

* radeon systems, where X can soft-boot your video card. You'll need
  patched X, and plain text console (no vesafb or radeonfb), see
  http://www.doesi.gmxhome.de/linux/tm800s3/s3.html. (Acer TM 800)

Now, if you pass acpi_sleep=something, and it does not work with your
bios, you'll get hard crash during resume. Be carefull.

You may have system where none of above works. At that point you
either invent another ugly hack that works, or write proper driver for
your video card (good luck getting docs :-(). Maybe suspending from X
(proper X, knowing your hardware, not XF68_FBcon) might have better
chance of working.