Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / Documentation / fb / intel810.txt
CommitLineData
1da177e4
LT
1Intel 810/815 Framebuffer driver
2 Tony Daplas <adaplas@pol.net>
3 http://i810fb.sourceforge.net
4
5 March 17, 2002
6
7 First Released: July 2001
c93a7771 8 Last Update: September 12, 2005
1da177e4
LT
9================================================================
10
11A. Introduction
9b262144 12
1da177e4 13 This is a framebuffer driver for various Intel 810/815 compatible
9b262144 14 graphics devices. These include:
1da177e4
LT
15
16 Intel 810
17 Intel 810E
18 Intel 810-DC100
19 Intel 815 Internal graphics only, 100Mhz FSB
20 Intel 815 Internal graphics only
21 Intel 815 Internal graphics and AGP
22
23B. Features
24
9b262144 25 - Choice of using Discrete Video Timings, VESA Generalized Timing
1da177e4
LT
26 Formula, or a framebuffer specific database to set the video mode
27
9b262144
RH
28 - Supports a variable range of horizontal and vertical resolution and
29 vertical refresh rates if the VESA Generalized Timing Formula is
1da177e4
LT
30 enabled.
31
9b262144 32 - Supports color depths of 8, 16, 24 and 32 bits per pixel
1da177e4
LT
33
34 - Supports pseudocolor, directcolor, or truecolor visuals
35
9b262144 36 - Full and optimized hardware acceleration at 8, 16 and 24 bpp
1da177e4
LT
37
38 - Robust video state save and restore
39
9b262144 40 - MTRR support
1da177e4
LT
41
42 - Utilizes user-entered monitor specifications to automatically
43 calculate required video mode parameters.
44
9b262144 45 - Can concurrently run with xfree86 running with native i810 drivers
1da177e4
LT
46
47 - Hardware Cursor Support
48
c93a7771
AD
49 - Supports EDID probing either by DDC/I2C or through the BIOS
50
1da177e4 51C. List of available options
9b262144
RH
52
53 a. "video=i810fb"
1da177e4
LT
54 enables the i810 driver
55
56 Recommendation: required
9b262144
RH
57
58 b. "xres:<value>"
c93a7771
AD
59 select horizontal resolution in pixels. (This parameter will be
60 ignored if 'mode_option' is specified. See 'o' below).
1da177e4 61
9b262144 62 Recommendation: user preference
1da177e4
LT
63 (default = 640)
64
65 c. "yres:<value>"
66 select vertical resolution in scanlines. If Discrete Video Timings
c93a7771
AD
67 is enabled, this will be ignored and computed as 3*xres/4. (This
68 parameter will be ignored if 'mode_option' is specified. See 'o'
9b262144 69 below)
1da177e4
LT
70
71 Recommendation: user preference
72 (default = 480)
9b262144
RH
73
74 d. "vyres:<value>"
1da177e4 75 select virtual vertical resolution in scanlines. If (0) or none
9b262144 76 is specified, this will be computed against maximum available memory.
1da177e4
LT
77
78 Recommendation: do not set
79 (default = 480)
80
81 e. "vram:<value>"
9b262144 82 select amount of system RAM in MB to allocate for the video memory
1da177e4
LT
83
84 Recommendation: 1 - 4 MB.
85 (default = 4)
86
9b262144
RH
87 f. "bpp:<value>"
88 select desired pixel depth
1da177e4
LT
89
90 Recommendation: 8
91 (default = 8)
92
9b262144
RH
93 g. "hsync1/hsync2:<value>"
94 select the minimum and maximum Horizontal Sync Frequency of the
95 monitor in kHz. If using a fixed frequency monitor, hsync1 must
c93a7771
AD
96 be equal to hsync2. If EDID probing is successful, these will be
97 ignored and values will be taken from the EDID block.
1da177e4
LT
98
99 Recommendation: check monitor manual for correct values
9b262144 100 (default = 29/30)
1da177e4 101
9b262144 102 h. "vsync1/vsync2:<value>"
1da177e4 103 select the minimum and maximum Vertical Sync Frequency of the monitor
9b262144 104 in Hz. You can also use this option to lock your monitor's refresh
c93a7771
AD
105 rate. If EDID probing is successful, these will be ignored and values
106 will be taken from the EDID block.
1da177e4
LT
107
108 Recommendation: check monitor manual for correct values
109 (default = 60/60)
110
9b262144
RH
111 IMPORTANT: If you need to clamp your timings, try to give some
112 leeway for computational errors (over/underflows). Example: if
1da177e4
LT
113 using vsync1/vsync2 = 60/60, make sure hsync1/hsync2 has at least
114 a 1 unit difference, and vice versa.
115
9b262144
RH
116 i. "voffset:<value>"
117 select at what offset in MB of the logical memory to allocate the
1da177e4
LT
118 framebuffer memory. The intent is to avoid the memory blocks
119 used by standard graphics applications (XFree86). The default
9b262144
RH
120 offset (16 MB for a 64 MB aperture, 8 MB for a 32 MB aperture) will
121 avoid XFree86's usage and allows up to 7 MB/15 MB of framebuffer
122 memory. Depending on your usage, adjust the value up or down
123 (0 for maximum usage, 31/63 MB for the least amount). Note, an
1da177e4
LT
124 arbitrary setting may conflict with XFree86.
125
126 Recommendation: do not set
127 (default = 8 or 16 MB)
9b262144
RH
128
129 j. "accel"
130 enable text acceleration. This can be enabled/reenabled anytime
131 by using 'fbset -accel true/false'.
1da177e4
LT
132
133 Recommendation: enable
9b262144 134 (default = not set)
1da177e4 135
9b262144 136 k. "mtrr"
1da177e4
LT
137 enable MTRR. This allows data transfers to the framebuffer memory
138 to occur in bursts which can significantly increase performance.
9b262144 139 Not very helpful with the i810/i815 because of 'shared memory'.
1da177e4
LT
140
141 Recommendation: do not set
9b262144 142 (default = not set)
1da177e4
LT
143
144 l. "extvga"
145 if specified, secondary/external VGA output will always be enabled.
146 Useful if the BIOS turns off the VGA port when no monitor is attached.
9b262144 147 The external VGA monitor can then be attached without rebooting.
1da177e4
LT
148
149 Recommendation: do not set
150 (default = not set)
9b262144
RH
151
152 m. "sync"
1da177e4 153 Forces the hardware engine to do a "sync" or wait for the hardware
9b262144 154 to finish before starting another instruction. This will produce a
1da177e4
LT
155 more stable setup, but will be slower.
156
157 Recommendation: do not set
158 (default = not set)
159
160 n. "dcolor"
161 Use directcolor visual instead of truecolor for pixel depths greater
162 than 8 bpp. Useful for color tuning, such as gamma control.
163
164 Recommendation: do not set
165 (default = not set)
9b262144 166
c93a7771
AD
167 o. <xres>x<yres>[-<bpp>][@<refresh>]
168 The driver will now accept specification of boot mode option. If this
169 is specified, the options 'xres' and 'yres' will be ignored. See
170 Documentation/fb/modedb.txt for usage.
171
1da177e4
LT
172D. Kernel booting
173
174Separate each option/option-pair by commas (,) and the option from its value
175with a colon (:) as in the following:
176
177video=i810fb:option1,option2:value2
178
179Sample Usage
180------------
181
182In /etc/lilo.conf, add the line:
183
184append="video=i810fb:vram:2,xres:1024,yres:768,bpp:8,hsync1:30,hsync2:55, \
185 vsync1:50,vsync2:85,accel,mtrr"
186
187This will initialize the framebuffer to 1024x768 at 8bpp. The framebuffer
9b262144
RH
188will use 2 MB of System RAM. MTRR support will be enabled. The refresh rate
189will be computed based on the hsync1/hsync2 and vsync1/vsync2 values.
1da177e4
LT
190
191IMPORTANT:
192You must include hsync1, hsync2, vsync1 and vsync2 to enable video modes
c93a7771
AD
193better than 640x480 at 60Hz. HOWEVER, if your chipset/display combination
194supports I2C and has an EDID block, you can safely exclude hsync1, hsync2,
195vsync1 and vsync2 parameters. These parameters will be taken from the EDID
196block.
1da177e4
LT
197
198E. Module options
9b262144
RH
199
200The module parameters are essentially similar to the kernel
201parameters. The main difference is that you need to include a Boolean value
202(1 for TRUE, and 0 for FALSE) for those options which don't need a value.
1da177e4
LT
203
204Example, to enable MTRR, include "mtrr=1".
205
206Sample Usage
207------------
208
209Using the same setup as described above, load the module like this:
210
211 modprobe i810fb vram=2 xres=1024 bpp=8 hsync1=30 hsync2=55 vsync1=50 \
212 vsync2=85 accel=1 mtrr=1
213
970e2486 214Or just add the following to a configuration file in /etc/modprobe.d/
1da177e4
LT
215
216 options i810fb vram=2 xres=1024 bpp=16 hsync1=30 hsync2=55 vsync1=50 \
217 vsync2=85 accel=1 mtrr=1
218
9b262144 219and just do a
1da177e4
LT
220
221 modprobe i810fb
222
223
224F. Setup
225
9b262144
RH
226 a. Do your usual method of configuring the kernel.
227
1da177e4
LT
228 make menuconfig/xconfig/config
229
9b262144
RH
230 b. Under "Code maturity level options" enable "Prompt for development
231 and/or incomplete code/drivers".
1da177e4
LT
232
233 c. Enable agpgart support for the Intel 810/815 on-board graphics.
9b262144 234 This is required. The option is under "Character Devices".
1da177e4
LT
235
236 d. Under "Graphics Support", select "Intel 810/815" either statically
c93a7771 237 or as a module. Choose "use VESA Generalized Timing Formula" if
9b262144
RH
238 you need to maximize the capability of your display. To be on the
239 safe side, you can leave this unselected.
240
c93a7771
AD
241 e. If you want support for DDC/I2C probing (Plug and Play Displays),
242 set 'Enable DDC Support' to 'y'. To make this option appear, set
243 'use VESA Generalized Timing Formula' to 'y'.
244
9b262144
RH
245 f. If you want a framebuffer console, enable it under "Console
246 Drivers".
247
248 g. Compile your kernel.
249
250 h. Load the driver as described in sections D and E.
1da177e4 251
1da177e4
LT
252 i. Try the DirectFB (http://www.directfb.org) + the i810 gfxdriver
253 patch to see the chipset in action (or inaction :-).
254
255G. Acknowledgment:
9b262144 256
1da177e4 257 1. Geert Uytterhoeven - his excellent howto and the virtual
9b262144 258 framebuffer driver code made this possible.
1da177e4 259
9b262144 260 2. Jeff Hartmann for his agpgart code.
1da177e4
LT
261
262 3. The X developers. Insights were provided just by reading the
263 XFree86 source code.
264
265 4. Intel(c). For this value-oriented chipset driver and for
9b262144 266 providing documentation.
1da177e4
LT
267
268 5. Matt Sottek. His inputs and ideas helped in making some
9b262144 269 optimizations possible.
1da177e4
LT
270
271H. Home Page:
272
273 A more complete, and probably updated information is provided at
9b262144 274 http://i810fb.sourceforge.net.
1da177e4
LT
275
276###########################
277Tony
278