Development

Hardware documentation

Host bridge

2D

3D

LVDS encoders

TMDS encoders

TV encoders

Coding style

The code formatting in the openChrome driver is currently a mess. It is the result of having several different developers, each coding in his own way. The goal is to get as close as possible to some kind of Xorg unified coding style. If the instructions below differ substantially from what's current practice, they will be revised.

Function names start with a lowercase letter and are written like this: viaFunctionName() As a general rule all functions should start with the prefix "via", however to improve clarity, static functions are allowed to start with other names.

Variables also start with a lowercase letter: numOfScreens Global variables should be avoided.

Type names start with an uppercase letter: ViaMagicType Structs are wrapped with typedef.

Indentation and general formatting should be done with the command:

indent -bad -bap -c40 -cd0 -ncdb -ci4 -cli0 -cp0 -ncs -d0 -di4 \
       -i4 -ip4 -l78 -nlp -npcs -psl -sob -ss -br -ce -sc

See also the Xorg coding style page: http://www.x.org/wiki/CodingStyle

Todo list

*Priority * *Category * *Task * *Status *
High RandR Dual screen
High DRM Prepare drm-openchrome for merge into drm-next
Medium KMS DRI2 (Xv/XvMC)
Medium KMS 2D acceleration (EXA)
Medium KMS HW screen rotation
Low KMS I2C slave encoders frame work support
Low KMS More I2C slave encoders
Low KMS TV output
Low KMS Display Port output
Low KMS Power Management
Low Video Multiple Xv ports
Low Video MSD hw video decoder support (CX700 and later) WIP
Low Video VAAPI/VDPAU support
Low Video iDCT/MoComp support
Low Video mpeg4 support
Low 3D 3D acceleration

Registers dump

Building the driver with the --enable-viaregtool configure option will generate a via_regs_dump binary that will be placed into /usr/sbin on install.

It can be used to dump the IGP registers as well as other useful information.