[PATCH] fbdev: Add VESA Coordinated Video Timings (CVT) support
authorAntonino A. Daplas <adaplas@gmail.com>
Fri, 9 Sep 2005 20:09:58 +0000 (13:09 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 9 Sep 2005 21:03:39 +0000 (14:03 -0700)
commit96fe6a2109db29cd15b90a093c16e6cb4b19371a
treebd3c424f3f43e6b5a2ba6c235c7c25b3ba197f4c
parent5251bffc9b4ca699993c79166adf02faf1bbc043
[PATCH] fbdev: Add VESA Coordinated Video Timings (CVT) support

The Coordinated Video Timings (CVT) is the latest standard approved by VESA
concerning video timings generation.  It addresses the limitation of GTF which
is designed mainly for CRT displays.  CRT's have a high blanking requirement
(as much as 25% of the horizontal frame length) which artificially increases
the pixelclock.  Digital displays, on the other hand, needs to conserve the
pixelclock as much as possible.  The GTF also does not take into account the
different aspect ratios in its calculation.

The new function added is fb_find_mode_cvt().  It is called by fb_find_mode()
if it recognizes a mode option string formatted for CVT.  The format is:

<xres>x<yres>[M][R][-<bpp>][<at-sign><refresh>][i][m]

The 'M' tells the function to calculate using CVT.  On it's own, it will
compute a timing for CRT displays at 60Hz.  If the 'R' is specified, 'reduced
blanking' computation will be used, best for flatpanels.  The 'i' and the 'm'
is for 'interlaced mode' and 'with margins' respectively.

To determine if CVT was used, check for dmesg for something like this:

CVT Mode - <pix>M<n>[-R], ie: .480M3-R  (800x600 reduced blanking)

where: pix - product of xres and yres, in MB
    M   - is a CVT mode
    n   - the aspect ratio (3 - 4:3; 4 - 5:4; 9 - 16:9, 15:9; A - 16:10)
    -R   - reduced blanking

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Documentation/fb/modedb.txt
drivers/video/Makefile
drivers/video/fbcvt.c [new file with mode: 0644]
drivers/video/fbmem.c
drivers/video/modedb.c
include/linux/fb.h