1 =========================== 2 Video issues with S3 resume 3 =========================== 4 5 2003-2006, Pavel Machek 6 7 During S3 resume, hardware needs to be reinitialized. For most 8 devices, this is easy, and kernel driver knows how to do 9 it. Unfortunately there's one exception: video card. Those are usually 10 initialized by BIOS, and kernel does not have enough information to 11 boot video card. (Kernel usually does not even contain video card 12 driver -- vesafb and vgacon are widely used). 13 14 This is not problem for swsusp, because during swsusp resume, BIOS is 15 run normally so video card is normally initialized. It should not be 16 problem for S1 standby, because hardware should retain its state over 17 that. 18 19 We either have to run video BIOS during early resume, or interpret it 20 using vbetool later, or maybe nothing is necessary on particular 21 system because video state is preserved. Unfortunately different 22 methods work on different systems, and no known method suits all of 23 them. 24 25 Userland application called s2ram has been developed; it contains long 26 whitelist of systems, and automatically selects working method for a 27 given system. It can be downloaded from CVS at 28 www.sf.net/projects/suspend . If you get a system that is not in the 29 whitelist, please try to find a working solution, and submit whitelist 30 entry so that work does not need to be repeated. 31 32 Currently, VBE_SAVE method (6 below) works on most 33 systems. Unfortunately, vbetool only runs after userland is resumed, 34 so it makes debugging of early resume problems 35 hard/impossible. Methods that do not rely on userland are preferable. 36 37 Details 38 ~~~~~~~ 39 40 There are a few types of systems where video works after S3 resume: 41 42 (1) systems where video state is preserved over S3. 43 44 (2) systems where it is possible to call the video BIOS during S3 45 resume. Unfortunately, it is not correct to call the video BIOS at 46 that point, but it happens to work on some machines. Use 47 acpi_sleep=s3_bios. 48 49 (3) systems that initialize video card into vga text mode and where 50 the BIOS works well enough to be able to set video mode. Use 51 acpi_sleep=s3_mode on these. 52 53 (4) on some systems s3_bios kicks video into text mode, and 54 acpi_sleep=s3_bios,s3_mode is needed. 55 56 (5) radeon systems, where X can soft-boot your video card. You'll need 57 a new enough X, and a plain text console (no vesafb or radeonfb). See 58 http://www.doesi.gmxhome.de/linux/tm800s3/s3.html for more information. 59 Alternatively, you should use vbetool (6) instead. 60 61 (6) other radeon systems, where vbetool is enough to bring system back 62 to life. It needs text console to be working. Do vbetool vbestate 63 save > /tmp/delme; echo 3 > /proc/acpi/sleep; vbetool post; vbetool 64 vbestate restore < /tmp/delme; setfont <whatever>, and your video 65 should work. 66 67 (7) on some systems, it is possible to boot most of kernel, and then 68 POSTing bios works. Ole Rohne has patch to do just that at 69 http://dev.gentoo.org/~marineam/patch-radeonfb-2.6.11-rc2-mm2. 70 71 (8) on some systems, you can use the video_post utility and or 72 do echo 3 > /sys/power/state && /usr/sbin/video_post - which will 73 initialize the display in console mode. If you are in X, you can switch 74 to a virtual terminal and back to X using CTRL+ALT+F1 - CTRL+ALT+F7 to get 75 the display working in graphical mode again. 76 77 Now, if you pass acpi_sleep=something, and it does not work with your 78 bios, you'll get a hard crash during resume. Be careful. Also it is 79 safest to do your experiments with plain old VGA console. The vesafb 80 and radeonfb (etc) drivers have a tendency to crash the machine during 81 resume. 82 83 You may have a system where none of above works. At that point you 84 either invent another ugly hack that works, or write proper driver for 85 your video card (good luck getting docs :-(). Maybe suspending from X 86 (proper X, knowing your hardware, not XF68_FBcon) might have better 87 chance of working. 88 89 Table of known working notebooks: 90 91 92 =============================== =============================================== 93 Model hack (or "how to do it") 94 =============================== =============================================== 95 Acer Aspire 1406LC ole's late BIOS init (7), turn off DRI 96 Acer TM 230 s3_bios (2) 97 Acer TM 242FX vbetool (6) 98 Acer TM C110 video_post (8) 99 Acer TM C300 vga=normal (only suspend on console, not in X), 100 vbetool (6) or video_post (8) 101 Acer TM 4052LCi s3_bios (2) 102 Acer TM 636Lci s3_bios,s3_mode (4) 103 Acer TM 650 (Radeon M7) vga=normal plus boot-radeon (5) gets text 104 console back 105 Acer TM 660 ??? [#f1]_ 106 Acer TM 800 vga=normal, X patches, see webpage (5) 107 or vbetool (6) 108 Acer TM 803 vga=normal, X patches, see webpage (5) 109 or vbetool (6) 110 Acer TM 803LCi vga=normal, vbetool (6) 111 Arima W730a vbetool needed (6) 112 Asus L2400D s3_mode (3) [#f2]_ (S1 also works OK) 113 Asus L3350M (SiS 740) (6) 114 Asus L3800C (Radeon M7) s3_bios (2) (S1 also works OK) 115 Asus M6887Ne vga=normal, s3_bios (2), use radeon driver 116 instead of fglrx in x.org 117 Athlon64 desktop prototype s3_bios (2) 118 Compal CL-50 ??? [#f1]_ 119 Compaq Armada E500 - P3-700 none (1) (S1 also works OK) 120 Compaq Evo N620c vga=normal, s3_bios (2) 121 Dell 600m, ATI R250 Lf none (1), but needs xorg-x11-6.8.1.902-1 122 Dell D600, ATI RV250 vga=normal and X, or try vbestate (6) 123 Dell D610 vga=normal and X (possibly vbestate (6) too, 124 but not tested) 125 Dell Inspiron 4000 ??? [#f1]_ 126 Dell Inspiron 500m ??? [#f1]_ 127 Dell Inspiron 510m ??? 128 Dell Inspiron 5150 vbetool needed (6) 129 Dell Inspiron 600m ??? [#f1]_ 130 Dell Inspiron 8200 ??? [#f1]_ 131 Dell Inspiron 8500 ??? [#f1]_ 132 Dell Inspiron 8600 ??? [#f1]_ 133 eMachines athlon64 machines vbetool needed (6) (someone please get 134 me model #s) 135 HP NC6000 s3_bios, may not use radeonfb (2); 136 or vbetool (6) 137 HP NX7000 ??? [#f1]_ 138 HP Pavilion ZD7000 vbetool post needed, need open-source nv 139 driver for X 140 HP Omnibook XE3 athlon version none (1) 141 HP Omnibook XE3GC none (1), video is S3 Savage/IX-MV 142 HP Omnibook XE3L-GF vbetool (6) 143 HP Omnibook 5150 none (1), (S1 also works OK) 144 IBM TP T20, model 2647-44G none (1), video is S3 Inc. 86C270-294 145 Savage/IX-MV, vesafb gets "interesting" 146 but X work. 147 IBM TP A31 / Type 2652-M5G s3_mode (3) [works ok with 148 BIOS 1.04 2002-08-23, but not at all with 149 BIOS 1.11 2004-11-05 :-(] 150 IBM TP R32 / Type 2658-MMG none (1) 151 IBM TP R40 2722B3G ??? [#f1]_ 152 IBM TP R50p / Type 1832-22U s3_bios (2) 153 IBM TP R51 none (1) 154 IBM TP T30 236681A ??? [#f1]_ 155 IBM TP T40 / Type 2373-MU4 none (1) 156 IBM TP T40p none (1) 157 IBM TP R40p s3_bios (2) 158 IBM TP T41p s3_bios (2), switch to X after resume 159 IBM TP T42 s3_bios (2) 160 IBM ThinkPad T42p (2373-GTG) s3_bios (2) 161 IBM TP X20 ??? [#f1]_ 162 IBM TP X30 s3_bios, s3_mode (4) 163 IBM TP X31 / Type 2672-XXH none (1), use radeontool 164 (http://fdd.com/software/radeon/) to 165 turn off backlight. 166 IBM TP X32 none (1), but backlight is on and video is 167 trashed after long suspend. s3_bios, 168 s3_mode (4) works too. Perhaps that gets 169 better results? 170 IBM Thinkpad X40 Type 2371-7JG s3_bios,s3_mode (4) 171 IBM TP 600e none(1), but a switch to console and 172 back to X is needed 173 Medion MD4220 ??? [#f1]_ 174 Samsung P35 vbetool needed (6) 175 Sharp PC-AR10 (ATI rage) none (1), backlight does not switch off 176 Sony Vaio PCG-C1VRX/K s3_bios (2) 177 Sony Vaio PCG-F403 ??? [#f1]_ 178 Sony Vaio PCG-GRT995MP none (1), works with 'nv' X driver 179 Sony Vaio PCG-GR7/K none (1), but needs radeonfb, use 180 radeontool (http://fdd.com/software/radeon/) 181 to turn off backlight. 182 Sony Vaio PCG-N505SN ??? [#f1]_ 183 Sony Vaio vgn-s260 X or boot-radeon can init it (5) 184 Sony Vaio vgn-S580BH vga=normal, but suspend from X. Console will 185 be blank unless you return to X. 186 Sony Vaio vgn-FS115B s3_bios (2),s3_mode (4) 187 Toshiba Libretto L5 none (1) 188 Toshiba Libretto 100CT/110CT vbetool (6) 189 Toshiba Portege 3020CT s3_mode (3) 190 Toshiba Satellite 4030CDT s3_mode (3) (S1 also works OK) 191 Toshiba Satellite 4080XCDT s3_mode (3) (S1 also works OK) 192 Toshiba Satellite 4090XCDT ??? [#f1]_ 193 Toshiba Satellite P10-554 s3_bios,s3_mode (4)[#f3]_ 194 Toshiba M30 (2) xor X with nvidia driver using internal AGP 195 Uniwill 244IIO ??? [#f1]_ 196 =============================== =============================================== 197 198 Known working desktop systems 199 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 201 =================== ============================= ======================== 202 Mainboard Graphics card hack (or "how to do it") 203 =================== ============================= ======================== 204 Asus A7V8X nVidia RIVA TNT2 model 64 s3_bios,s3_mode (4) 205 =================== ============================= ======================== 206 207 208 .. [#f1] from https://wiki.ubuntu.com/HoaryPMResults, not sure 209 which options to use. If you know, please tell me. 210 211 .. [#f2] To be tested with a newer kernel. 212 213 .. [#f3] Not with SMP kernel, UP only.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.