Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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