]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blob - Documentation/power/video.rst
Merge tag 's390-5.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
[mirror_ubuntu-focal-kernel.git] / Documentation / power / video.rst
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.