]>
Commit | Line | Data |
---|---|---|
151f4e2b MCC |
1 | =========================== |
2 | Video issues with S3 resume | |
3 | =========================== | |
1da177e4 | 4 | |
151f4e2b | 5 | 2003-2006, Pavel Machek |
1da177e4 LT |
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 | |
36fabc24 PM |
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. | |
1da177e4 | 18 | |
543cc27d | 19 | We either have to run video BIOS during early resume, or interpret it |
992caacf | 20 | using vbetool later, or maybe nothing is necessary on particular |
543cc27d PM |
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 | ||
1da177e4 LT |
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 | |
151f4e2b MCC |
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. | |
1da177e4 LT |
48 | |
49 | (3) systems that initialize video card into vga text mode and where | |
151f4e2b MCC |
50 | the BIOS works well enough to be able to set video mode. Use |
51 | acpi_sleep=s3_mode on these. | |
1da177e4 LT |
52 | |
53 | (4) on some systems s3_bios kicks video into text mode, and | |
151f4e2b | 54 | acpi_sleep=s3_bios,s3_mode is needed. |
1da177e4 LT |
55 | |
56 | (5) radeon systems, where X can soft-boot your video card. You'll need | |
151f4e2b MCC |
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. | |
1da177e4 LT |
60 | |
61 | (6) other radeon systems, where vbetool is enough to bring system back | |
151f4e2b MCC |
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. | |
1da177e4 LT |
66 | |
67 | (7) on some systems, it is possible to boot most of kernel, and then | |
151f4e2b MCC |
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. | |
1da177e4 | 70 | |
151f4e2b MCC |
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. | |
7e958883 | 76 | |
1da177e4 LT |
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 | ||
36fabc24 | 89 | Table of known working notebooks: |
1da177e4 | 90 | |
151f4e2b MCC |
91 | |
92 | =============================== =============================================== | |
1da177e4 | 93 | Model hack (or "how to do it") |
151f4e2b | 94 | =============================== =============================================== |
1da177e4 | 95 | Acer Aspire 1406LC ole's late BIOS init (7), turn off DRI |
e084dbd3 | 96 | Acer TM 230 s3_bios (2) |
1da177e4 | 97 | Acer TM 242FX vbetool (6) |
7e958883 | 98 | Acer TM C110 video_post (8) |
151f4e2b MCC |
99 | Acer TM C300 vga=normal (only suspend on console, not in X), |
100 | vbetool (6) or video_post (8) | |
1da177e4 | 101 | Acer TM 4052LCi s3_bios (2) |
36fabc24 | 102 | Acer TM 636Lci s3_bios,s3_mode (4) |
151f4e2b MCC |
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) | |
1da177e4 LT |
110 | Acer TM 803LCi vga=normal, vbetool (6) |
111 | Arima W730a vbetool needed (6) | |
151f4e2b | 112 | Asus L2400D s3_mode (3) [#f2]_ (S1 also works OK) |
a4ffad5b | 113 | Asus L3350M (SiS 740) (6) |
1da177e4 | 114 | Asus L3800C (Radeon M7) s3_bios (2) (S1 also works OK) |
151f4e2b MCC |
115 | Asus M6887Ne vga=normal, s3_bios (2), use radeon driver |
116 | instead of fglrx in x.org | |
1da177e4 | 117 | Athlon64 desktop prototype s3_bios (2) |
151f4e2b | 118 | Compal CL-50 ??? [#f1]_ |
1da177e4 LT |
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) | |
151f4e2b MCC |
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]_ | |
2a962065 | 127 | Dell Inspiron 510m ??? |
e084dbd3 | 128 | Dell Inspiron 5150 vbetool needed (6) |
151f4e2b MCC |
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 | |
1da177e4 LT |
140 | HP Omnibook XE3 athlon version none (1) |
141 | HP Omnibook XE3GC none (1), video is S3 Savage/IX-MV | |
e084dbd3 | 142 | HP Omnibook XE3L-GF vbetool (6) |
543cc27d | 143 | HP Omnibook 5150 none (1), (S1 also works OK) |
151f4e2b MCC |
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 :-(] | |
1da177e4 | 150 | IBM TP R32 / Type 2658-MMG none (1) |
151f4e2b | 151 | IBM TP R40 2722B3G ??? [#f1]_ |
1da177e4 | 152 | IBM TP R50p / Type 1832-22U s3_bios (2) |
a4ffad5b | 153 | IBM TP R51 none (1) |
151f4e2b | 154 | IBM TP T30 236681A ??? [#f1]_ |
1da177e4 LT |
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 | |
a4ffad5b | 159 | IBM TP T42 s3_bios (2) |
1da177e4 | 160 | IBM ThinkPad T42p (2373-GTG) s3_bios (2) |
151f4e2b | 161 | IBM TP X20 ??? [#f1]_ |
9587c4bf | 162 | IBM TP X30 s3_bios, s3_mode (4) |
151f4e2b MCC |
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? | |
1da177e4 | 170 | IBM Thinkpad X40 Type 2371-7JG s3_bios,s3_mode (4) |
151f4e2b MCC |
171 | IBM TP 600e none(1), but a switch to console and |
172 | back to X is needed | |
173 | Medion MD4220 ??? [#f1]_ | |
1da177e4 | 174 | Samsung P35 vbetool needed (6) |
543cc27d | 175 | Sharp PC-AR10 (ATI rage) none (1), backlight does not switch off |
374a6cf2 | 176 | Sony Vaio PCG-C1VRX/K s3_bios (2) |
151f4e2b | 177 | Sony Vaio PCG-F403 ??? [#f1]_ |
543cc27d | 178 | Sony Vaio PCG-GRT995MP none (1), works with 'nv' X driver |
151f4e2b MCC |
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]_ | |
1da177e4 | 183 | Sony Vaio vgn-s260 X or boot-radeon can init it (5) |
151f4e2b MCC |
184 | Sony Vaio vgn-S580BH vga=normal, but suspend from X. Console will |
185 | be blank unless you return to X. | |
543cc27d | 186 | Sony Vaio vgn-FS115B s3_bios (2),s3_mode (4) |
1da177e4 | 187 | Toshiba Libretto L5 none (1) |
e084dbd3 | 188 | Toshiba Libretto 100CT/110CT vbetool (6) |
543cc27d PM |
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) | |
151f4e2b MCC |
192 | Toshiba Satellite 4090XCDT ??? [#f1]_ |
193 | Toshiba Satellite P10-554 s3_bios,s3_mode (4)[#f3]_ | |
2a962065 | 194 | Toshiba M30 (2) xor X with nvidia driver using internal AGP |
151f4e2b MCC |
195 | Uniwill 244IIO ??? [#f1]_ |
196 | =============================== =============================================== | |
1da177e4 | 197 | |
36fabc24 PM |
198 | Known working desktop systems |
199 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
200 | ||
151f4e2b | 201 | =================== ============================= ======================== |
36fabc24 | 202 | Mainboard Graphics card hack (or "how to do it") |
151f4e2b | 203 | =================== ============================= ======================== |
36fabc24 | 204 | Asus A7V8X nVidia RIVA TNT2 model 64 s3_bios,s3_mode (4) |
151f4e2b | 205 | =================== ============================= ======================== |
36fabc24 | 206 | |
1da177e4 | 207 | |
151f4e2b MCC |
208 | .. [#f1] from https://wiki.ubuntu.com/HoaryPMResults, not sure |
209 | which options to use. If you know, please tell me. | |
1da177e4 | 210 | |
151f4e2b | 211 | .. [#f2] To be tested with a newer kernel. |
1da177e4 | 212 | |
151f4e2b | 213 | .. [#f3] Not with SMP kernel, UP only. |