About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / fb / viafb.txt


Based on kernel version 4.16.1. Page generated on 2018-04-09 11:53 EST.

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


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog