Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable
[pandora-kernel.git] / Documentation / fb / viafb.txt
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 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 [Bootup with viafb]:
201 --------------------
202     Add the following line to your grub.conf:
203     append = "video=viafb:viafb_mode=1024x768,viafb_bpp=32,viafb_refresh=85"
204