diff options
Diffstat (limited to 'Documentation/power/video.txt')
-rw-r--r-- | Documentation/power/video.txt | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/Documentation/power/video.txt b/Documentation/power/video.txt new file mode 100644 index 000000000000..8686968416ca --- /dev/null +++ b/Documentation/power/video.txt | |||
@@ -0,0 +1,169 @@ | |||
1 | |||
2 | Video issues with S3 resume | ||
3 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
4 | 2003-2005, Pavel Machek | ||
5 | |||
6 | During S3 resume, hardware needs to be reinitialized. For most | ||
7 | devices, this is easy, and kernel driver knows how to do | ||
8 | it. Unfortunately there's one exception: video card. Those are usually | ||
9 | initialized by BIOS, and kernel does not have enough information to | ||
10 | boot video card. (Kernel usually does not even contain video card | ||
11 | driver -- vesafb and vgacon are widely used). | ||
12 | |||
13 | This is not problem for swsusp, because during swsusp resume, BIOS is | ||
14 | run normally so video card is normally initialized. S3 has absolutely | ||
15 | no chance of working with SMP/HT. Be sure it to turn it off before | ||
16 | testing (swsusp should work ok, OTOH). | ||
17 | |||
18 | There are a few types of systems where video works after S3 resume: | ||
19 | |||
20 | (1) systems where video state is preserved over S3. | ||
21 | |||
22 | (2) systems where it is possible to call the video BIOS during S3 | ||
23 | resume. Unfortunately, it is not correct to call the video BIOS at | ||
24 | that point, but it happens to work on some machines. Use | ||
25 | acpi_sleep=s3_bios. | ||
26 | |||
27 | (3) systems that initialize video card into vga text mode and where | ||
28 | the BIOS works well enough to be able to set video mode. Use | ||
29 | acpi_sleep=s3_mode on these. | ||
30 | |||
31 | (4) on some systems s3_bios kicks video into text mode, and | ||
32 | acpi_sleep=s3_bios,s3_mode is needed. | ||
33 | |||
34 | (5) radeon systems, where X can soft-boot your video card. You'll need | ||
35 | new enough X, and plain text console (no vesafb or radeonfb), see | ||
36 | http://www.doesi.gmxhome.de/linux/tm800s3/s3.html. Actually you | ||
37 | should probably use vbetool (6) instead. | ||
38 | |||
39 | (6) other radeon systems, where vbetool is enough to bring system back | ||
40 | to life. It needs text console to be working. Do vbetool vbestate | ||
41 | save > /tmp/delme; echo 3 > /proc/acpi/sleep; vbetool post; vbetool | ||
42 | vbestate restore < /tmp/delme; setfont <whatever>, and your video | ||
43 | should work. | ||
44 | |||
45 | (7) on some systems, it is possible to boot most of kernel, and then | ||
46 | POSTing bios works. Ole Rohne has patch to do just that at | ||
47 | http://dev.gentoo.org/~marineam/patch-radeonfb-2.6.11-rc2-mm2. | ||
48 | |||
49 | Now, if you pass acpi_sleep=something, and it does not work with your | ||
50 | bios, you'll get a hard crash during resume. Be careful. Also it is | ||
51 | safest to do your experiments with plain old VGA console. The vesafb | ||
52 | and radeonfb (etc) drivers have a tendency to crash the machine during | ||
53 | resume. | ||
54 | |||
55 | You may have a system where none of above works. At that point you | ||
56 | either invent another ugly hack that works, or write proper driver for | ||
57 | your video card (good luck getting docs :-(). Maybe suspending from X | ||
58 | (proper X, knowing your hardware, not XF68_FBcon) might have better | ||
59 | chance of working. | ||
60 | |||
61 | Table of known working systems: | ||
62 | |||
63 | Model hack (or "how to do it") | ||
64 | ------------------------------------------------------------------------------ | ||
65 | Acer Aspire 1406LC ole's late BIOS init (7), turn off DRI | ||
66 | Acer TM 242FX vbetool (6) | ||
67 | Acer TM C300 vga=normal (only suspend on console, not in X), vbetool (6) | ||
68 | Acer TM 4052LCi s3_bios (2) | ||
69 | Acer TM 636Lci s3_bios vga=normal (2) | ||
70 | Acer TM 650 (Radeon M7) vga=normal plus boot-radeon (5) gets text console back | ||
71 | Acer TM 660 ??? (*) | ||
72 | Acer TM 800 vga=normal, X patches, see webpage (5) or vbetool (6) | ||
73 | Acer TM 803 vga=normal, X patches, see webpage (5) or vbetool (6) | ||
74 | Acer TM 803LCi vga=normal, vbetool (6) | ||
75 | Arima W730a vbetool needed (6) | ||
76 | Asus L2400D s3_mode (3)(***) (S1 also works OK) | ||
77 | Asus L3800C (Radeon M7) s3_bios (2) (S1 also works OK) | ||
78 | Asus M6NE ??? (*) | ||
79 | Athlon64 desktop prototype s3_bios (2) | ||
80 | Compal CL-50 ??? (*) | ||
81 | Compaq Armada E500 - P3-700 none (1) (S1 also works OK) | ||
82 | Compaq Evo N620c vga=normal, s3_bios (2) | ||
83 | Dell 600m, ATI R250 Lf none (1), but needs xorg-x11-6.8.1.902-1 | ||
84 | Dell D600, ATI RV250 vga=normal and X, or try vbestate (6) | ||
85 | Dell Inspiron 4000 ??? (*) | ||
86 | Dell Inspiron 500m ??? (*) | ||
87 | Dell Inspiron 600m ??? (*) | ||
88 | Dell Inspiron 8200 ??? (*) | ||
89 | Dell Inspiron 8500 ??? (*) | ||
90 | Dell Inspiron 8600 ??? (*) | ||
91 | eMachines athlon64 machines vbetool needed (6) (someone please get me model #s) | ||
92 | HP NC6000 s3_bios, may not use radeonfb (2); or vbetool (6) | ||
93 | HP NX7000 ??? (*) | ||
94 | HP Pavilion ZD7000 vbetool post needed, need open-source nv driver for X | ||
95 | HP Omnibook XE3 athlon version none (1) | ||
96 | HP Omnibook XE3GC none (1), video is S3 Savage/IX-MV | ||
97 | IBM TP T20, model 2647-44G none (1), video is S3 Inc. 86C270-294 Savage/IX-MV, vesafb gets "interesting" but X work. | ||
98 | IBM TP A31 / Type 2652-M5G s3_mode (3) [works ok with BIOS 1.04 2002-08-23, but not at all with BIOS 1.11 2004-11-05 :-(] | ||
99 | IBM TP R32 / Type 2658-MMG none (1) | ||
100 | IBM TP R40 2722B3G ??? (*) | ||
101 | IBM TP R50p / Type 1832-22U s3_bios (2) | ||
102 | IBM TP R51 ??? (*) | ||
103 | IBM TP T30 236681A ??? (*) | ||
104 | IBM TP T40 / Type 2373-MU4 none (1) | ||
105 | IBM TP T40p none (1) | ||
106 | IBM TP R40p s3_bios (2) | ||
107 | IBM TP T41p s3_bios (2), switch to X after resume | ||
108 | IBM TP T42 ??? (*) | ||
109 | IBM ThinkPad T42p (2373-GTG) s3_bios (2) | ||
110 | IBM TP X20 ??? (*) | ||
111 | IBM TP X30 ??? (*) | ||
112 | IBM TP X31 / Type 2672-XXH none (1), use radeontool (http://fdd.com/software/radeon/) to turn off backlight. | ||
113 | IBM Thinkpad X40 Type 2371-7JG s3_bios,s3_mode (4) | ||
114 | Medion MD4220 ??? (*) | ||
115 | Samsung P35 vbetool needed (6) | ||
116 | Sharp PC-AR10 (ATI rage) none (1) | ||
117 | Sony Vaio PCG-F403 ??? (*) | ||
118 | Sony Vaio PCG-N505SN ??? (*) | ||
119 | Sony Vaio vgn-s260 X or boot-radeon can init it (5) | ||
120 | Toshiba Libretto L5 none (1) | ||
121 | Toshiba Satellite 4030CDT s3_mode (3) | ||
122 | Toshiba Satellite 4080XCDT s3_mode (3) | ||
123 | Toshiba Satellite 4090XCDT ??? (*) | ||
124 | Toshiba Satellite P10-554 s3_bios,s3_mode (4)(****) | ||
125 | Uniwill 244IIO ??? (*) | ||
126 | |||
127 | |||
128 | (*) from http://www.ubuntulinux.org/wiki/HoaryPMResults, not sure | ||
129 | which options to use. If you know, please tell me. | ||
130 | |||
131 | (***) To be tested with a newer kernel. | ||
132 | |||
133 | (****) Not with SMP kernel, UP only. | ||
134 | |||
135 | VBEtool details | ||
136 | ~~~~~~~~~~~~~~~ | ||
137 | (with thanks to Carl-Daniel Hailfinger) | ||
138 | |||
139 | First, boot into X and run the following script ONCE: | ||
140 | #!/bin/bash | ||
141 | statedir=/root/s3/state | ||
142 | mkdir -p $statedir | ||
143 | chvt 2 | ||
144 | sleep 1 | ||
145 | vbetool vbestate save >$statedir/vbe | ||
146 | |||
147 | |||
148 | To suspend and resume properly, call the following script as root: | ||
149 | #!/bin/bash | ||
150 | statedir=/root/s3/state | ||
151 | curcons=`fgconsole` | ||
152 | fuser /dev/tty$curcons 2>/dev/null|xargs ps -o comm= -p|grep -q X && chvt 2 | ||
153 | cat /dev/vcsa >$statedir/vcsa | ||
154 | sync | ||
155 | echo 3 >/proc/acpi/sleep | ||
156 | sync | ||
157 | vbetool post | ||
158 | vbetool vbestate restore <$statedir/vbe | ||
159 | cat $statedir/vcsa >/dev/vcsa | ||
160 | rckbd restart | ||
161 | chvt $[curcons%6+1] | ||
162 | chvt $curcons | ||
163 | |||
164 | |||
165 | Unless you change your graphics card or other hardware configuration, | ||
166 | the state once saved will be OK for every resume afterwards. | ||
167 | NOTE: The "rckbd restart" command may be different for your | ||
168 | distribution. Simply replace it with the command you would use to | ||
169 | set the fonts on screen. | ||