linux/Documentation/fb/viafb.txt
<<
>>
Prefs
   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
 164Notes:
 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"
 252
 253
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.