| |
| 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. |