~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/fb/viafb.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

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

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php