mirror of
				https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable.git
				synced 2025-11-04 07:44:51 +10:00 
			
		
		
		
	The conversion is actually: - add blank lines and identation in order to identify paragraphs; - fix tables markups; - add some lists markups; - mark literal blocks; - adjust title markups. At its new index.rst, let's add a :orphan: while this is not linked to the main index.rst file, in order to avoid build warnings. Also, removed the Maintained by, as requested by Geert. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
		
			
				
	
	
		
			298 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			298 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
=======================================================
 | 
						|
VIA Integration Graphic Chip Console Framebuffer Driver
 | 
						|
=======================================================
 | 
						|
 | 
						|
Platform
 | 
						|
--------
 | 
						|
    The console framebuffer driver is for graphics chips of
 | 
						|
    VIA UniChrome Family
 | 
						|
    (CLE266, PM800 / CN400 / CN300,
 | 
						|
    P4M800CE / P4M800Pro / CN700 / VN800,
 | 
						|
    CX700 / VX700, K8M890, P4M890,
 | 
						|
    CN896 / P4M900, VX800, VX855)
 | 
						|
 | 
						|
Driver features
 | 
						|
---------------
 | 
						|
    Device: CRT, LCD, DVI
 | 
						|
 | 
						|
    Support viafb_mode::
 | 
						|
 | 
						|
	CRT:
 | 
						|
	    640x480(60, 75, 85, 100, 120 Hz), 720x480(60 Hz),
 | 
						|
	    720x576(60 Hz), 800x600(60, 75, 85, 100, 120 Hz),
 | 
						|
	    848x480(60 Hz), 856x480(60 Hz), 1024x512(60 Hz),
 | 
						|
	    1024x768(60, 75, 85, 100 Hz), 1152x864(75 Hz),
 | 
						|
	    1280x768(60 Hz), 1280x960(60 Hz), 1280x1024(60, 75, 85 Hz),
 | 
						|
	    1440x1050(60 Hz), 1600x1200(60, 75 Hz), 1280x720(60 Hz),
 | 
						|
	    1920x1080(60 Hz), 1400x1050(60 Hz), 800x480(60 Hz)
 | 
						|
 | 
						|
    color depth: 8 bpp, 16 bpp, 32 bpp supports.
 | 
						|
 | 
						|
    Support 2D hardware accelerator.
 | 
						|
 | 
						|
Using the viafb module
 | 
						|
----------------------
 | 
						|
    Start viafb with default settings::
 | 
						|
 | 
						|
	#modprobe viafb
 | 
						|
 | 
						|
    Start viafb with user options::
 | 
						|
 | 
						|
	#modprobe viafb viafb_mode=800x600 viafb_bpp=16 viafb_refresh=60
 | 
						|
		  viafb_active_dev=CRT+DVI viafb_dvi_port=DVP1
 | 
						|
		  viafb_mode1=1024x768 viafb_bpp=16 viafb_refresh1=60
 | 
						|
		  viafb_SAMM_ON=1
 | 
						|
 | 
						|
    viafb_mode:
 | 
						|
	- 640x480 (default)
 | 
						|
	- 720x480
 | 
						|
	- 800x600
 | 
						|
	- 1024x768
 | 
						|
 | 
						|
    viafb_bpp:
 | 
						|
	- 8, 16, 32 (default:32)
 | 
						|
 | 
						|
    viafb_refresh:
 | 
						|
	- 60, 75, 85, 100, 120 (default:60)
 | 
						|
 | 
						|
    viafb_lcd_dsp_method:
 | 
						|
	- 0 : expansion (default)
 | 
						|
	- 1 : centering
 | 
						|
 | 
						|
    viafb_lcd_mode:
 | 
						|
	0 : LCD panel with LSB data format input (default)
 | 
						|
	1 : LCD panel with MSB data format input
 | 
						|
 | 
						|
    viafb_lcd_panel_id:
 | 
						|
	- 0 : Resolution: 640x480, Channel: single, Dithering: Enable
 | 
						|
	- 1 : Resolution: 800x600, Channel: single, Dithering: Enable
 | 
						|
	- 2 : Resolution: 1024x768, Channel: single, Dithering: Enable (default)
 | 
						|
	- 3 : Resolution: 1280x768, Channel: single, Dithering: Enable
 | 
						|
	- 4 : Resolution: 1280x1024, Channel: dual, Dithering: Enable
 | 
						|
	- 5 : Resolution: 1400x1050, Channel: dual, Dithering: Enable
 | 
						|
	- 6 : Resolution: 1600x1200, Channel: dual, Dithering: Enable
 | 
						|
 | 
						|
	- 8 : Resolution: 800x480, Channel: single, Dithering: Enable
 | 
						|
	- 9 : Resolution: 1024x768, Channel: dual, Dithering: Enable
 | 
						|
	- 10: Resolution: 1024x768, Channel: single, Dithering: Disable
 | 
						|
	- 11: Resolution: 1024x768, Channel: dual, Dithering: Disable
 | 
						|
	- 12: Resolution: 1280x768, Channel: single, Dithering: Disable
 | 
						|
	- 13: Resolution: 1280x1024, Channel: dual, Dithering: Disable
 | 
						|
	- 14: Resolution: 1400x1050, Channel: dual, Dithering: Disable
 | 
						|
	- 15: Resolution: 1600x1200, Channel: dual, Dithering: Disable
 | 
						|
	- 16: Resolution: 1366x768, Channel: single, Dithering: Disable
 | 
						|
	- 17: Resolution: 1024x600, Channel: single, Dithering: Enable
 | 
						|
	- 18: Resolution: 1280x768, Channel: dual, Dithering: Enable
 | 
						|
	- 19: Resolution: 1280x800, Channel: single, Dithering: Enable
 | 
						|
 | 
						|
    viafb_accel:
 | 
						|
	- 0 : No 2D Hardware Acceleration
 | 
						|
	- 1 : 2D Hardware Acceleration (default)
 | 
						|
 | 
						|
    viafb_SAMM_ON:
 | 
						|
	- 0 : viafb_SAMM_ON disable (default)
 | 
						|
	- 1 : viafb_SAMM_ON enable
 | 
						|
 | 
						|
    viafb_mode1: (secondary display device)
 | 
						|
	- 640x480 (default)
 | 
						|
	- 720x480
 | 
						|
	- 800x600
 | 
						|
	- 1024x768
 | 
						|
 | 
						|
    viafb_bpp1: (secondary display device)
 | 
						|
	- 8, 16, 32 (default:32)
 | 
						|
 | 
						|
    viafb_refresh1: (secondary display device)
 | 
						|
	- 60, 75, 85, 100, 120 (default:60)
 | 
						|
 | 
						|
    viafb_active_dev:
 | 
						|
	This option is used to specify active devices.(CRT, DVI, CRT+LCD...)
 | 
						|
	DVI stands for DVI or HDMI, E.g., If you want to enable HDMI,
 | 
						|
	set viafb_active_dev=DVI. In SAMM case, the previous of
 | 
						|
	viafb_active_dev is primary device, and the following is
 | 
						|
	secondary device.
 | 
						|
 | 
						|
	For example:
 | 
						|
 | 
						|
	To enable one device, such as DVI only, we can use::
 | 
						|
 | 
						|
	    modprobe viafb viafb_active_dev=DVI
 | 
						|
 | 
						|
	To enable two devices, such as CRT+DVI::
 | 
						|
 | 
						|
	    modprobe viafb viafb_active_dev=CRT+DVI;
 | 
						|
 | 
						|
	For DuoView case, we can use::
 | 
						|
 | 
						|
	    modprobe viafb viafb_active_dev=CRT+DVI
 | 
						|
 | 
						|
	OR::
 | 
						|
 | 
						|
	    modprobe viafb viafb_active_dev=DVI+CRT...
 | 
						|
 | 
						|
	For SAMM case:
 | 
						|
 | 
						|
	If CRT is primary and DVI is secondary, we should use::
 | 
						|
 | 
						|
	    modprobe viafb viafb_active_dev=CRT+DVI viafb_SAMM_ON=1...
 | 
						|
 | 
						|
	If DVI is primary and CRT is secondary, we should use::
 | 
						|
 | 
						|
	    modprobe viafb viafb_active_dev=DVI+CRT viafb_SAMM_ON=1...
 | 
						|
 | 
						|
    viafb_display_hardware_layout:
 | 
						|
	This option is used to specify display hardware layout for CX700 chip.
 | 
						|
 | 
						|
	- 1 : LCD only
 | 
						|
	- 2 : DVI only
 | 
						|
	- 3 : LCD+DVI (default)
 | 
						|
	- 4 : LCD1+LCD2 (internal + internal)
 | 
						|
	- 16: LCD1+ExternalLCD2 (internal + external)
 | 
						|
 | 
						|
    viafb_second_size:
 | 
						|
	This option is used to set second device memory size(MB) in SAMM case.
 | 
						|
	The minimal size is 16.
 | 
						|
 | 
						|
    viafb_platform_epia_dvi:
 | 
						|
	This option is used to enable DVI on EPIA - M
 | 
						|
 | 
						|
	- 0 : No DVI on EPIA - M (default)
 | 
						|
	- 1 : DVI on EPIA - M
 | 
						|
 | 
						|
    viafb_bus_width:
 | 
						|
	When using 24 - Bit Bus Width Digital Interface,
 | 
						|
	this option should be set.
 | 
						|
 | 
						|
	- 12: 12-Bit LVDS or 12-Bit TMDS (default)
 | 
						|
	- 24: 24-Bit LVDS or 24-Bit TMDS
 | 
						|
 | 
						|
    viafb_device_lcd_dualedge:
 | 
						|
	When using Dual Edge Panel, this option should be set.
 | 
						|
 | 
						|
	- 0 : No Dual Edge Panel (default)
 | 
						|
	- 1 : Dual Edge Panel
 | 
						|
 | 
						|
    viafb_lcd_port:
 | 
						|
	This option is used to specify LCD output port,
 | 
						|
	available values are "DVP0" "DVP1" "DFP_HIGHLOW" "DFP_HIGH" "DFP_LOW".
 | 
						|
 | 
						|
	for external LCD + external DVI on CX700(External LCD is on DVP0),
 | 
						|
	we should use::
 | 
						|
 | 
						|
	    modprobe viafb viafb_lcd_port=DVP0...
 | 
						|
 | 
						|
Notes:
 | 
						|
    1. CRT may not display properly for DuoView CRT & DVI display at
 | 
						|
       the "640x480" PAL mode with DVI overscan enabled.
 | 
						|
    2. SAMM stands for single adapter multi monitors. It is different from
 | 
						|
       multi-head since SAMM support multi monitor at driver layers, thus fbcon
 | 
						|
       layer doesn't even know about it; SAMM's second screen doesn't have a
 | 
						|
       device node file, thus a user mode application can't access it directly.
 | 
						|
       When SAMM is enabled, viafb_mode and viafb_mode1, viafb_bpp and
 | 
						|
       viafb_bpp1, viafb_refresh and viafb_refresh1 can be different.
 | 
						|
    3. When console is depending on viafbinfo1, dynamically change resolution
 | 
						|
       and bpp, need to call VIAFB specified ioctl interface VIAFB_SET_DEVICE
 | 
						|
       instead of calling common ioctl function FBIOPUT_VSCREENINFO since
 | 
						|
       viafb doesn't support multi-head well, or it will cause screen crush.
 | 
						|
 | 
						|
 | 
						|
Configure viafb with "fbset" tool
 | 
						|
---------------------------------
 | 
						|
 | 
						|
    "fbset" is an inbox utility of Linux.
 | 
						|
 | 
						|
    1. Inquire current viafb information, type::
 | 
						|
 | 
						|
	   # fbset -i
 | 
						|
 | 
						|
    2. Set various resolutions and viafb_refresh rates::
 | 
						|
 | 
						|
	   # fbset <resolution-vertical_sync>
 | 
						|
 | 
						|
       example::
 | 
						|
 | 
						|
	   # fbset "1024x768-75"
 | 
						|
 | 
						|
       or::
 | 
						|
 | 
						|
	   # fbset -g 1024 768 1024 768 32
 | 
						|
 | 
						|
       Check the file "/etc/fb.modes" to find display modes available.
 | 
						|
 | 
						|
    3. Set the color depth::
 | 
						|
 | 
						|
	   # fbset -depth <value>
 | 
						|
 | 
						|
       example::
 | 
						|
 | 
						|
	   # fbset -depth 16
 | 
						|
 | 
						|
 | 
						|
Configure viafb via /proc
 | 
						|
-------------------------
 | 
						|
    The following files exist in /proc/viafb
 | 
						|
 | 
						|
    supported_output_devices
 | 
						|
	This read-only file contains a full ',' separated list containing all
 | 
						|
	output devices that could be available on your platform. It is likely
 | 
						|
	that not all of those have a connector on your hardware but it should
 | 
						|
	provide a good starting point to figure out which of those names match
 | 
						|
	a real connector.
 | 
						|
 | 
						|
	Example::
 | 
						|
 | 
						|
		# cat /proc/viafb/supported_output_devices
 | 
						|
 | 
						|
    iga1/output_devices, iga2/output_devices
 | 
						|
	These two files are readable and writable. iga1 and iga2 are the two
 | 
						|
	independent units that produce the screen image. Those images can be
 | 
						|
	forwarded to one or more output devices. Reading those files is a way
 | 
						|
	to query which output devices are currently used by an iga.
 | 
						|
 | 
						|
	Example::
 | 
						|
 | 
						|
		# cat /proc/viafb/iga1/output_devices
 | 
						|
 | 
						|
	If there are no output devices printed the output of this iga is lost.
 | 
						|
	This can happen for example if only one (the other) iga is used.
 | 
						|
	Writing to these files allows adjusting the output devices during
 | 
						|
	runtime. One can add new devices, remove existing ones or switch
 | 
						|
	between igas. Essentially you can write a ',' separated list of device
 | 
						|
	names (or a single one) in the same format as the output to those
 | 
						|
	files. You can add a '+' or '-' as a prefix allowing simple addition
 | 
						|
	and removal of devices. So a prefix '+' adds the devices from your list
 | 
						|
	to the already existing ones, '-' removes the listed devices from the
 | 
						|
	existing ones and if no prefix is given it replaces all existing ones
 | 
						|
	with the listed ones. If you remove devices they are expected to turn
 | 
						|
	off. If you add devices that are already part of the other iga they are
 | 
						|
	removed there and added to the new one.
 | 
						|
 | 
						|
	Examples:
 | 
						|
 | 
						|
	Add CRT as output device to iga1::
 | 
						|
 | 
						|
		# echo +CRT > /proc/viafb/iga1/output_devices
 | 
						|
 | 
						|
	Remove (turn off) DVP1 and LVDS1 as output devices of iga2::
 | 
						|
 | 
						|
		# echo -DVP1,LVDS1 > /proc/viafb/iga2/output_devices
 | 
						|
 | 
						|
	Replace all iga1 output devices by CRT::
 | 
						|
 | 
						|
		# echo CRT > /proc/viafb/iga1/output_devices
 | 
						|
 | 
						|
 | 
						|
Bootup with viafb
 | 
						|
-----------------
 | 
						|
 | 
						|
Add the following line to your grub.conf::
 | 
						|
 | 
						|
    append = "video=viafb:viafb_mode=1024x768,viafb_bpp=32,viafb_refresh=85"
 | 
						|
 | 
						|
 | 
						|
VIA Framebuffer modes
 | 
						|
=====================
 | 
						|
 | 
						|
.. include:: viafb.modes
 | 
						|
   :literal:
 |