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) VIA Integration Graphic Chip Console 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) Platform
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) --------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7)     The console framebuffer driver is for graphics chips of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8)     VIA UniChrome Family
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9)     (CLE266, PM800 / CN400 / CN300,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10)     P4M800CE / P4M800Pro / CN700 / VN800,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11)     CX700 / VX700, K8M890, P4M890,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12)     CN896 / P4M900, VX800, VX855)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) Driver features
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) ---------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16)     Device: CRT, LCD, DVI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18)     Support viafb_mode::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 	CRT:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 	    640x480(60, 75, 85, 100, 120 Hz), 720x480(60 Hz),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 	    720x576(60 Hz), 800x600(60, 75, 85, 100, 120 Hz),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 	    848x480(60 Hz), 856x480(60 Hz), 1024x512(60 Hz),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 	    1024x768(60, 75, 85, 100 Hz), 1152x864(75 Hz),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 	    1280x768(60 Hz), 1280x960(60 Hz), 1280x1024(60, 75, 85 Hz),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) 	    1440x1050(60 Hz), 1600x1200(60, 75 Hz), 1280x720(60 Hz),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 	    1920x1080(60 Hz), 1400x1050(60 Hz), 800x480(60 Hz)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29)     color depth: 8 bpp, 16 bpp, 32 bpp supports.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31)     Support 2D hardware accelerator.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) Using the viafb module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) ----------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35)     Start viafb with default settings::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 	#modprobe viafb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39)     Start viafb with user options::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 	#modprobe viafb viafb_mode=800x600 viafb_bpp=16 viafb_refresh=60
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 		  viafb_active_dev=CRT+DVI viafb_dvi_port=DVP1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 		  viafb_mode1=1024x768 viafb_bpp=16 viafb_refresh1=60
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 		  viafb_SAMM_ON=1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46)     viafb_mode:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 	- 640x480 (default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 	- 720x480
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 	- 800x600
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 	- 1024x768
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52)     viafb_bpp:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 	- 8, 16, 32 (default:32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55)     viafb_refresh:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 	- 60, 75, 85, 100, 120 (default:60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58)     viafb_lcd_dsp_method:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 	- 0 : expansion (default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 	- 1 : centering
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62)     viafb_lcd_mode:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 	0 : LCD panel with LSB data format input (default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 	1 : LCD panel with MSB data format input
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66)     viafb_lcd_panel_id:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	- 0 : Resolution: 640x480, Channel: single, Dithering: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	- 1 : Resolution: 800x600, Channel: single, Dithering: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 	- 2 : Resolution: 1024x768, Channel: single, Dithering: Enable (default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 	- 3 : Resolution: 1280x768, Channel: single, Dithering: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 	- 4 : Resolution: 1280x1024, Channel: dual, Dithering: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 	- 5 : Resolution: 1400x1050, Channel: dual, Dithering: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 	- 6 : Resolution: 1600x1200, Channel: dual, Dithering: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 	- 8 : Resolution: 800x480, Channel: single, Dithering: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 	- 9 : Resolution: 1024x768, Channel: dual, Dithering: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 	- 10: Resolution: 1024x768, Channel: single, Dithering: Disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 	- 11: Resolution: 1024x768, Channel: dual, Dithering: Disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 	- 12: Resolution: 1280x768, Channel: single, Dithering: Disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 	- 13: Resolution: 1280x1024, Channel: dual, Dithering: Disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 	- 14: Resolution: 1400x1050, Channel: dual, Dithering: Disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 	- 15: Resolution: 1600x1200, Channel: dual, Dithering: Disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 	- 16: Resolution: 1366x768, Channel: single, Dithering: Disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 	- 17: Resolution: 1024x600, Channel: single, Dithering: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 	- 18: Resolution: 1280x768, Channel: dual, Dithering: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 	- 19: Resolution: 1280x800, Channel: single, Dithering: Enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88)     viafb_accel:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	- 0 : No 2D Hardware Acceleration
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 	- 1 : 2D Hardware Acceleration (default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92)     viafb_SAMM_ON:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	- 0 : viafb_SAMM_ON disable (default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 	- 1 : viafb_SAMM_ON enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96)     viafb_mode1: (secondary display device)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 	- 640x480 (default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	- 720x480
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 	- 800x600
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 	- 1024x768
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)     viafb_bpp1: (secondary display device)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 	- 8, 16, 32 (default:32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)     viafb_refresh1: (secondary display device)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 	- 60, 75, 85, 100, 120 (default:60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)     viafb_active_dev:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 	This option is used to specify active devices.(CRT, DVI, CRT+LCD...)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 	DVI stands for DVI or HDMI, E.g., If you want to enable HDMI,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 	set viafb_active_dev=DVI. In SAMM case, the previous of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 	viafb_active_dev is primary device, and the following is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 	secondary device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 	For example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 	To enable one device, such as DVI only, we can use::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 	    modprobe viafb viafb_active_dev=DVI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 	To enable two devices, such as CRT+DVI::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 	    modprobe viafb viafb_active_dev=CRT+DVI;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 	For DuoView case, we can use::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 	    modprobe viafb viafb_active_dev=CRT+DVI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 	OR::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 	    modprobe viafb viafb_active_dev=DVI+CRT...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) 	For SAMM case:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 	If CRT is primary and DVI is secondary, we should use::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 	    modprobe viafb viafb_active_dev=CRT+DVI viafb_SAMM_ON=1...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) 	If DVI is primary and CRT is secondary, we should use::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) 	    modprobe viafb viafb_active_dev=DVI+CRT viafb_SAMM_ON=1...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)     viafb_display_hardware_layout:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) 	This option is used to specify display hardware layout for CX700 chip.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) 	- 1 : LCD only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 	- 2 : DVI only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 	- 3 : LCD+DVI (default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 	- 4 : LCD1+LCD2 (internal + internal)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 	- 16: LCD1+ExternalLCD2 (internal + external)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152)     viafb_second_size:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 	This option is used to set second device memory size(MB) in SAMM case.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 	The minimal size is 16.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156)     viafb_platform_epia_dvi:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 	This option is used to enable DVI on EPIA - M
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) 	- 0 : No DVI on EPIA - M (default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) 	- 1 : DVI on EPIA - M
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162)     viafb_bus_width:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) 	When using 24 - Bit Bus Width Digital Interface,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) 	this option should be set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 	- 12: 12-Bit LVDS or 12-Bit TMDS (default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) 	- 24: 24-Bit LVDS or 24-Bit TMDS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169)     viafb_device_lcd_dualedge:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) 	When using Dual Edge Panel, this option should be set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 	- 0 : No Dual Edge Panel (default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 	- 1 : Dual Edge Panel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175)     viafb_lcd_port:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 	This option is used to specify LCD output port,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) 	available values are "DVP0" "DVP1" "DFP_HIGHLOW" "DFP_HIGH" "DFP_LOW".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) 	for external LCD + external DVI on CX700(External LCD is on DVP0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) 	we should use::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) 	    modprobe viafb viafb_lcd_port=DVP0...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) Notes:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185)     1. CRT may not display properly for DuoView CRT & DVI display at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186)        the "640x480" PAL mode with DVI overscan enabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187)     2. SAMM stands for single adapter multi monitors. It is different from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188)        multi-head since SAMM support multi monitor at driver layers, thus fbcon
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189)        layer doesn't even know about it; SAMM's second screen doesn't have a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190)        device node file, thus a user mode application can't access it directly.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191)        When SAMM is enabled, viafb_mode and viafb_mode1, viafb_bpp and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192)        viafb_bpp1, viafb_refresh and viafb_refresh1 can be different.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193)     3. When console is depending on viafbinfo1, dynamically change resolution
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194)        and bpp, need to call VIAFB specified ioctl interface VIAFB_SET_DEVICE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195)        instead of calling common ioctl function FBIOPUT_VSCREENINFO since
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196)        viafb doesn't support multi-head well, or it will cause screen crush.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) Configure viafb with "fbset" tool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) ---------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202)     "fbset" is an inbox utility of Linux.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204)     1. Inquire current viafb information, type::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 	   # fbset -i
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208)     2. Set various resolutions and viafb_refresh rates::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 	   # fbset <resolution-vertical_sync>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212)        example::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) 	   # fbset "1024x768-75"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216)        or::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) 	   # fbset -g 1024 768 1024 768 32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220)        Check the file "/etc/fb.modes" to find display modes available.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222)     3. Set the color depth::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) 	   # fbset -depth <value>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226)        example::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) 	   # fbset -depth 16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) Configure viafb via /proc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) -------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233)     The following files exist in /proc/viafb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235)     supported_output_devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) 	This read-only file contains a full ',' separated list containing all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) 	output devices that could be available on your platform. It is likely
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 	that not all of those have a connector on your hardware but it should
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) 	provide a good starting point to figure out which of those names match
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) 	a real connector.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) 	Example::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) 		# cat /proc/viafb/supported_output_devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246)     iga1/output_devices, iga2/output_devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) 	These two files are readable and writable. iga1 and iga2 are the two
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) 	independent units that produce the screen image. Those images can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) 	forwarded to one or more output devices. Reading those files is a way
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) 	to query which output devices are currently used by an iga.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) 	Example::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) 		# cat /proc/viafb/iga1/output_devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) 	If there are no output devices printed the output of this iga is lost.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) 	This can happen for example if only one (the other) iga is used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) 	Writing to these files allows adjusting the output devices during
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) 	runtime. One can add new devices, remove existing ones or switch
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) 	between igas. Essentially you can write a ',' separated list of device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) 	names (or a single one) in the same format as the output to those
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) 	files. You can add a '+' or '-' as a prefix allowing simple addition
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) 	and removal of devices. So a prefix '+' adds the devices from your list
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) 	to the already existing ones, '-' removes the listed devices from the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) 	existing ones and if no prefix is given it replaces all existing ones
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) 	with the listed ones. If you remove devices they are expected to turn
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) 	off. If you add devices that are already part of the other iga they are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) 	removed there and added to the new one.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) 	Examples:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) 	Add CRT as output device to iga1::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) 		# echo +CRT > /proc/viafb/iga1/output_devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) 	Remove (turn off) DVP1 and LVDS1 as output devices of iga2::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) 		# echo -DVP1,LVDS1 > /proc/viafb/iga2/output_devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) 	Replace all iga1 output devices by CRT::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) 		# echo CRT > /proc/viafb/iga1/output_devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) Bootup with viafb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) -----------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) Add the following line to your grub.conf::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290)     append = "video=viafb:viafb_mode=1024x768,viafb_bpp=32,viafb_refresh=85"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) VIA Framebuffer modes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) =====================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) .. include:: viafb.modes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297)    :literal: