Initial swag at common video mode database. Not used for anything (yet).

This commit is contained in:
gdamore 2006-03-04 02:34:27 +00:00
parent 970e24ee46
commit aba10b3dc5
6 changed files with 492 additions and 0 deletions

View File

@ -0,0 +1,18 @@
# $NetBSD: Makefile.videomode,v 1.1 2006/03/04 02:34:27 gdamore Exp $
#
# As per tron@NetBSD.org, the proper procedure is
#
# 1.) Change "src/sys/dev/videomode/modelines".
# 2.) Commit "src/sys/dev/videomode/modelines".
# 3.) Execute "make -f Makefile.videomode" in "src/sys/dev/videomode".
# 4.) Commit "src/sys/dev/videomode/videomode.c"
AWK= awk
videomode.c: modelines modelines2c.awk
/bin/rm -f videomode.c
${AWK} -f modelines2c.awk modelines > videomode.c
test: videomode.c videomode.h test.c
${CC} -I ../../ -o test test.c videomode.c

View File

@ -0,0 +1,5 @@
# $NetBSD: files.videomode,v 1.1 2006/03/04 02:34:27 gdamore Exp $
defpseudo videomode
file dev/videomode/videmode.c videomode

151
sys/dev/videomode/modelines Normal file
View File

@ -0,0 +1,151 @@
// $NetBSD: modelines,v 1.1 2006/03/04 02:34:27 gdamore Exp $
//
// This file was imported from XFree86, and is made of the contents of both
// the vesamodes and extramodes files. As a result these should correspond
// to the same default modes compiled into XFree86.
//
// Default modes distilled from
// "VESA and Industry Standards and Guide for Computer Display Monitor
// Timing", version 1.0, revision 0.8, adopted September 17, 1998.
//
// $XFree86: xc/programs/Xserver/hw/xfree86/etc/vesamodes,v 1.3 1999/11/16 03:28:03 tsi Exp $
// $XFree86: xc/programs/Xserver/hw/xfree86/etc/extramodes,v 1.5 2002/06/05 19:43:05 dawes Exp $
//
# 640x350 @ 85Hz (VESA) hsync: 37.9kHz
ModeLine "640x350" 31.5 640 672 736 832 350 382 385 445 +hsync -vsync
# 640x400 @ 85Hz (VESA) hsync: 37.9kHz
ModeLine "640x400" 31.5 640 672 736 832 400 401 404 445 -hsync +vsync
# 720x400 @ 85Hz (VESA) hsync: 37.9kHz
ModeLine "720x400" 35.5 720 756 828 936 400 401 404 446 -hsync +vsync
# 640x480 @ 60Hz (Industry standard) hsync: 31.5kHz
ModeLine "640x480" 25.2 640 656 752 800 480 490 492 525 -hsync -vsync
# 640x480 @ 72Hz (VESA) hsync: 37.9kHz
ModeLine "640x480" 31.5 640 664 704 832 480 489 491 520 -hsync -vsync
# 640x480 @ 75Hz (VESA) hsync: 37.5kHz
ModeLine "640x480" 31.5 640 656 720 840 480 481 484 500 -hsync -vsync
# 640x480 @ 85Hz (VESA) hsync: 43.3kHz
ModeLine "640x480" 36.0 640 696 752 832 480 481 484 509 -hsync -vsync
# 800x600 @ 56Hz (VESA) hsync: 35.2kHz
ModeLine "800x600" 36.0 800 824 896 1024 600 601 603 625 +hsync +vsync
# 800x600 @ 60Hz (VESA) hsync: 37.9kHz
ModeLine "800x600" 40.0 800 840 968 1056 600 601 605 628 +hsync +vsync
# 800x600 @ 72Hz (VESA) hsync: 48.1kHz
ModeLine "800x600" 50.0 800 856 976 1040 600 637 643 666 +hsync +vsync
# 800x600 @ 75Hz (VESA) hsync: 46.9kHz
ModeLine "800x600" 49.5 800 816 896 1056 600 601 604 625 +hsync +vsync
# 800x600 @ 85Hz (VESA) hsync: 53.7kHz
ModeLine "800x600" 56.3 800 832 896 1048 600 601 604 631 +hsync +vsync
# 1024x768i @ 43Hz (industry standard) hsync: 35.5kHz
ModeLine "1024x768" 44.9 1024 1032 1208 1264 768 768 776 817 +hsync +vsync Interlace
# 1024x768 @ 60Hz (VESA) hsync: 48.4kHz
ModeLine "1024x768" 65.0 1024 1048 1184 1344 768 771 777 806 -hsync -vsync
# 1024x768 @ 70Hz (VESA) hsync: 56.5kHz
ModeLine "1024x768" 75.0 1024 1048 1184 1328 768 771 777 806 -hsync -vsync
# 1024x768 @ 75Hz (VESA) hsync: 60.0kHz
ModeLine "1024x768" 78.8 1024 1040 1136 1312 768 769 772 800 +hsync +vsync
# 1024x768 @ 85Hz (VESA) hsync: 68.7kHz
ModeLine "1024x768" 94.5 1024 1072 1168 1376 768 769 772 808 +hsync +vsync
# 1152x864 @ 75Hz (VESA) hsync: 67.5kHz
ModeLine "1152x864" 108.0 1152 1216 1344 1600 864 865 868 900 +hsync +vsync
# 1280x960 @ 60Hz (VESA) hsync: 60.0kHz
ModeLine "1280x960" 108.0 1280 1376 1488 1800 960 961 964 1000 +hsync +vsync
# 1280x960 @ 85Hz (VESA) hsync: 85.9kHz
ModeLine "1280x960" 148.5 1280 1344 1504 1728 960 961 964 1011 +hsync +vsync
# 1280x1024 @ 60Hz (VESA) hsync: 64.0kHz
ModeLine "1280x1024" 108.0 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync
# 1280x1024 @ 75Hz (VESA) hsync: 80.0kHz
ModeLine "1280x1024" 135.0 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync
# 1280x1024 @ 85Hz (VESA) hsync: 91.1kHz
ModeLine "1280x1024" 157.5 1280 1344 1504 1728 1024 1025 1028 1072 +hsync +vsync
# 1600x1200 @ 60Hz (VESA) hsync: 75.0kHz
ModeLine "1600x1200" 162.0 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
# 1600x1200 @ 65Hz (VESA) hsync: 81.3kHz
ModeLine "1600x1200" 175.5 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
# 1600x1200 @ 70Hz (VESA) hsync: 87.5kHz
ModeLine "1600x1200" 189.0 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
# 1600x1200 @ 75Hz (VESA) hsync: 93.8kHz
ModeLine "1600x1200" 202.5 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
# 1600x1200 @ 85Hz (VESA) hsync: 106.3kHz
ModeLine "1600x1200" 229.5 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
# 1792x1344 @ 60Hz (VESA) hsync: 83.6kHz
ModeLine "1792x1344" 204.8 1792 1920 2120 2448 1344 1345 1348 1394 -hsync +vsync
# 1792x1344 @ 75Hz (VESA) hsync: 106.3kHz
ModeLine "1792x1344" 261.0 1792 1888 2104 2456 1344 1345 1348 1417 -hsync +vsync
# 1856x1392 @ 60Hz (VESA) hsync: 86.3kHz
ModeLine "1856x1392" 218.3 1856 1952 2176 2528 1392 1393 1396 1439 -hsync +vsync
# 1856x1392 @ 75Hz (VESA) hsync: 112.5kHz
ModeLine "1856x1392" 288.0 1856 1984 2208 2560 1392 1393 1396 1500 -hsync +vsync
# 1920x1440 @ 60Hz (VESA) hsync: 90.0kHz
ModeLine "1920x1440" 234.0 1920 2048 2256 2600 1440 1441 1444 1500 -hsync +vsync
# 1920x1440 @ 75Hz (VESA) hsync: 112.5kHz
ModeLine "1920x1440" 297.0 1920 2064 2288 2640 1440 1441 1444 1500 -hsync +vsync
//
// Extra modes to include as default modes in the X server.
//
// $XFree86: xc/programs/Xserver/hw/xfree86/etc/extramodes,v 1.5 2002/06/05 19:43:05 dawes Exp $
//
# 832x624 @ 75Hz (74.55Hz) (fix if the official/Apple spec is different) hsync: 49.725kHz
ModeLine "832x624" 57.284 832 864 928 1152 624 625 628 667 -Hsync -Vsync
# 1152x768 @ 54.8Hz (Titanium PowerBook) hsync: 44.2kHz
ModeLine "1152x768" 64.995 1152 1178 1314 1472 768 771 777 806 +hsync +vsync
# 1400x1050 @ 60Hz (VESA GTF) hsync: 65.5kHz
ModeLine "1400x1050" 122.0 1400 1488 1640 1880 1050 1052 1064 1082 +hsync +vsync
# 1400x1050 @ 75Hz (VESA GTF) hsync: 82.2kHz
ModeLine "1400x1050" 155.8 1400 1464 1784 1912 1050 1052 1064 1090 +hsync +vsync
# 1600x1024 @ 60Hz (SGI 1600SW) hsync: 64.0kHz
Modeline "1600x1024" 106.910 1600 1620 1640 1670 1024 1027 1030 1067 -hsync -vsync
# 1920x1440 @ 85Hz (VESA GTF) hsync: 128.5kHz
Modeline "1920x1440" 341.35 1920 2072 2288 2656 1440 1441 1444 1512 -hsync +vsync
# 2048x1536 @ 60Hz (VESA GTF) hsync: 95.3kHz
Modeline "2048x1536" 266.95 2048 2200 2424 2800 1536 1537 1540 1589 -hsync +vsync
# 2048x1536 @ 75Hz (VESA GTF) hsync: 120.2kHz
Modeline "2048x1536" 340.48 2048 2216 2440 2832 1536 1537 1540 1603 -hsync +vsync
# 2048x1536 @ 85Hz (VESA GTF) hsync: 137.0kHz
Modeline "2048x1536" 388.04 2048 2216 2440 2832 1536 1537 1540 1612 -hsync +vsync

View File

@ -0,0 +1,143 @@
#! /usr/bin/awk -f
# $NetBSD: modelines2c.awk,v 1.1 2006/03/04 02:34:27 gdamore Exp $
#
# Copyright (c) 2006 Itronix Inc.
# All rights reserved.
#
# Written by Garrett D'Amore for Itronix Inc.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. The name of Itronix Inc. may not be used to endorse
# or promote products derived from this software without specific
# prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY ITRONIX INC. ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ITRONIX INC. BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
BEGIN {
nmodes = 0;
}
NR == 1 {
split($0,v,"$");
VERSION=v[2];
printf("/*\t$NetBSD" "$\t*/\n\n");
printf("/*\n") ;
printf(" * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.\n");
printf(" *\n");
printf(" * generated from:\n");
printf(" *\t%s\n", VERSION);
printf(" */\n");
printf("#include <dev/videomode/videomode.h>\n\n");
printf("/*\n");
printf(" * These macros help the modelines below fit on one line.\n");
printf(" */\n");
printf("#define HP VID_PHSYNC\n");
printf("#define HN VID_NHSYNC\n");
printf("#define VP VID_PVSYNC\n");
printf("#define VN VID_NVSYNC\n");
printf("#define I VID_INTERLACE\n");
printf("#define DS VID_DBLSCAN\n");
printf("\n");
printf("#define M(nm,hr,vr,clk,hs,he,ht,vs,ve,vt,f) \\\n");
printf("\t{ clk, hr, hs, he, ht, vr, vs, ve, vt, f, nm } \n\n");
printf("const struct videomode videomode_list[] = {\n");
next
}
(/^ModeLine/) {
dotclock = $3;
hdisplay = $4;
hsyncstart = $5;
hsyncend = $6;
htotal = $7;
vdisplay = $8;
vsyncstart = $9;
vsyncend = $10;
vtotal = $11;
macro = "MODE";
iflag = "";
iflags = "";
hflags = "HP";
vflags = "VP";
if ($12 ~ "^-")
hflags = "HN";
if ($13 ~ "^-")
vflags = "VN";
if ($14 ~ "[Ii][Nn][Tt][Ee][Rr][Ll][Aa][Cc][Ee]") {
iflag = "i";
iflags = "|I";
}
# why the additional .1 to vrefresh? well it seems that awk likes to
# make some "rounding errors", and this will compensate
hrefresh= (dotclock * 1000000) / htotal;
vrefresh= int((hrefresh / vtotal) + .1);
modestr = sprintf("%dx%dx%d%s", hdisplay, vdisplay, vrefresh, iflag);
# printf("/* %dx%d%s refresh %dHz, hsync %d KHz */\n",
# hdisplay, vdisplay, iflag, vrefresh, hrefresh/1000);
printf("M(\"%s\",%d,%d,%d,%d,%d,%d,%d,%d,%d,%s),\n",
modestr,
hdisplay, vdisplay, dotclock * 1000,
hsyncstart, hsyncend, htotal,
vsyncstart, vsyncend, vtotal, hflags "|" vflags iflags);
modestr = sprintf("%dx%dx%d%s",
hdisplay/2 , vdisplay/2, vrefresh, iflag);
dmodes[nmodes]=sprintf("M(\"%s\",%d,%d,%d,%d,%d,%d,%d,%d,%d,%s),",
modestr,
hdisplay/2, vdisplay/2, dotclock * 1000 / 2,
hsyncstart/2, hsyncend/2, htotal/2,
vsyncstart/2, vsyncend/2, vtotal/2,
hflags "|" vflags "|DS" iflags);
nmodes = nmodes + 1
}
END {
printf("\n/* Derived Double Scan Modes */\n\n");
for ( i = 0; i < nmodes; i++ )
{
print dmodes[i];
}
printf("};\n\n");
printf("const int videomode_count = %d;\n", nmodes);
}

View File

@ -0,0 +1,106 @@
/* $NetBSD: videomode.c,v 1.1 2006/03/04 02:34:27 gdamore Exp $ */
/*
* THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.
*
* generated from:
* NetBSD
*/
#include <dev/videomode/videomode.h>
/*
* These macros help the modelines below fit on one line.
*/
#define HP VID_PHSYNC
#define HN VID_NHSYNC
#define VP VID_PVSYNC
#define VN VID_NVSYNC
#define I VID_INTERLACE
#define DS VID_DBLSCAN
#define M(nm,hr,vr,clk,hs,he,ht,vs,ve,vt,f) \
{ clk, hr, hs, he, ht, vr, vs, ve, vt, f, nm }
const struct videomode videomode_list[] = {
M("640x350x85",640,350,31500,672,736,832,382,385,445,HP|VN),
M("640x400x85",640,400,31500,672,736,832,401,404,445,HN|VP),
M("720x400x85",720,400,35500,756,828,936,401,404,446,HN|VP),
M("640x480x60",640,480,25200,656,752,800,490,492,525,HN|VN),
M("640x480x72",640,480,31500,664,704,832,489,491,520,HN|VN),
M("640x480x75",640,480,31500,656,720,840,481,484,500,HN|VN),
M("640x480x85",640,480,36000,696,752,832,481,484,509,HN|VN),
M("800x600x56",800,600,36000,824,896,1024,601,603,625,HP|VP),
M("800x600x60",800,600,40000,840,968,1056,601,605,628,HP|VP),
M("800x600x72",800,600,50000,856,976,1040,637,643,666,HP|VP),
M("800x600x75",800,600,49500,816,896,1056,601,604,625,HP|VP),
M("800x600x85",800,600,56300,832,896,1048,601,604,631,HP|VP),
M("1024x768x43i",1024,768,44900,1032,1208,1264,768,776,817,HP|VP|I),
M("1024x768x60",1024,768,65000,1048,1184,1344,771,777,806,HN|VN),
M("1024x768x70",1024,768,75000,1048,1184,1328,771,777,806,HN|VN),
M("1024x768x75",1024,768,78800,1040,1136,1312,769,772,800,HP|VP),
M("1024x768x85",1024,768,94500,1072,1168,1376,769,772,808,HP|VP),
M("1152x864x75",1152,864,108000,1216,1344,1600,865,868,900,HP|VP),
M("1280x960x60",1280,960,108000,1376,1488,1800,961,964,1000,HP|VP),
M("1280x960x85",1280,960,148500,1344,1504,1728,961,964,1011,HP|VP),
M("1280x1024x60",1280,1024,108000,1328,1440,1688,1025,1028,1066,HP|VP),
M("1280x1024x75",1280,1024,135000,1296,1440,1688,1025,1028,1066,HP|VP),
M("1280x1024x85",1280,1024,157500,1344,1504,1728,1025,1028,1072,HP|VP),
M("1600x1200x60",1600,1200,162000,1664,1856,2160,1201,1204,1250,HP|VP),
M("1600x1200x65",1600,1200,175500,1664,1856,2160,1201,1204,1250,HP|VP),
M("1600x1200x70",1600,1200,189000,1664,1856,2160,1201,1204,1250,HP|VP),
M("1600x1200x75",1600,1200,202500,1664,1856,2160,1201,1204,1250,HP|VP),
M("1600x1200x85",1600,1200,229500,1664,1856,2160,1201,1204,1250,HP|VP),
M("1792x1344x60",1792,1344,204800,1920,2120,2448,1345,1348,1394,HN|VP),
M("1792x1344x75",1792,1344,261000,1888,2104,2456,1345,1348,1417,HN|VP),
M("1856x1392x60",1856,1392,218300,1952,2176,2528,1393,1396,1439,HN|VP),
M("1856x1392x75",1856,1392,288000,1984,2208,2560,1393,1396,1500,HN|VP),
M("1920x1440x60",1920,1440,234000,2048,2256,2600,1441,1444,1500,HN|VP),
M("1920x1440x75",1920,1440,297000,2064,2288,2640,1441,1444,1500,HN|VP),
M("832x624x74",832,624,57284,864,928,1152,625,628,667,HN|VN),
M("1152x768x54",1152,768,64995,1178,1314,1472,771,777,806,HP|VP),
M("1400x1050x60",1400,1050,122000,1488,1640,1880,1052,1064,1082,HP|VP),
M("1400x1050x74",1400,1050,155800,1464,1784,1912,1052,1064,1090,HP|VP),
/* Derived Double Scan Modes */
M("320x175x85",320,175,15750,336,368,416,191,192,222,HP|VN|DS),
M("320x200x85",320,200,15750,336,368,416,200,202,222,HN|VP|DS),
M("360x200x85",360,200,17750,378,414,468,200,202,223,HN|VP|DS),
M("320x240x60",320,240,12600,328,376,400,245,246,262,HN|VN|DS),
M("320x240x72",320,240,15750,332,352,416,244,245,260,HN|VN|DS),
M("320x240x75",320,240,15750,328,360,420,240,242,250,HN|VN|DS),
M("320x240x85",320,240,18000,348,376,416,240,242,254,HN|VN|DS),
M("400x300x56",400,300,18000,412,448,512,300,301,312,HP|VP|DS),
M("400x300x60",400,300,20000,420,484,528,300,302,314,HP|VP|DS),
M("400x300x72",400,300,25000,428,488,520,318,321,333,HP|VP|DS),
M("400x300x75",400,300,24750,408,448,528,300,302,312,HP|VP|DS),
M("400x300x85",400,300,28150,416,448,524,300,302,315,HP|VP|DS),
M("512x384x43i",512,384,22450,516,604,632,384,388,408,HP|VP|DS|I),
M("512x384x60",512,384,32500,524,592,672,385,388,403,HN|VN|DS),
M("512x384x70",512,384,37500,524,592,664,385,388,403,HN|VN|DS),
M("512x384x75",512,384,39400,520,568,656,384,386,400,HP|VP|DS),
M("512x384x85",512,384,47250,536,584,688,384,386,404,HP|VP|DS),
M("576x432x75",576,432,54000,608,672,800,432,434,450,HP|VP|DS),
M("640x480x60",640,480,54000,688,744,900,480,482,500,HP|VP|DS),
M("640x480x85",640,480,74250,672,752,864,480,482,505,HP|VP|DS),
M("640x512x60",640,512,54000,664,720,844,512,514,533,HP|VP|DS),
M("640x512x75",640,512,67500,648,720,844,512,514,533,HP|VP|DS),
M("640x512x85",640,512,78750,672,752,864,512,514,536,HP|VP|DS),
M("800x600x60",800,600,81000,832,928,1080,600,602,625,HP|VP|DS),
M("800x600x65",800,600,87750,832,928,1080,600,602,625,HP|VP|DS),
M("800x600x70",800,600,94500,832,928,1080,600,602,625,HP|VP|DS),
M("800x600x75",800,600,101250,832,928,1080,600,602,625,HP|VP|DS),
M("800x600x85",800,600,114750,832,928,1080,600,602,625,HP|VP|DS),
M("896x672x60",896,672,102400,960,1060,1224,672,674,697,HN|VP|DS),
M("896x672x75",896,672,130500,944,1052,1228,672,674,708,HN|VP|DS),
M("928x696x60",928,696,109150,976,1088,1264,696,698,719,HN|VP|DS),
M("928x696x75",928,696,144000,992,1104,1280,696,698,750,HN|VP|DS),
M("960x720x60",960,720,117000,1024,1128,1300,720,722,750,HN|VP|DS),
M("960x720x75",960,720,148500,1032,1144,1320,720,722,750,HN|VP|DS),
M("416x312x74",416,312,28642,432,464,576,312,314,333,HN|VN|DS),
M("576x384x54",576,384,32497,589,657,736,385,388,403,HP|VP|DS),
M("700x525x60",700,525,61000,744,820,940,526,532,541,HP|VP|DS),
M("700x525x74",700,525,77900,732,892,956,526,532,545,HP|VP|DS),
};
const int videomode_count = 38;

View File

@ -0,0 +1,69 @@
/* $NetBSD: videomode.h,v 1.1 2006/03/04 02:34:27 gdamore Exp $ */
/*
* Copyright (c) 2001, 2002 Bang Jun-Young
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _DEV_VIDEOMODE_H
#define _DEV_VIDEOMODE_H
struct videomode {
int dot_clock; /* Dot clock frequency in kHz. */
int hdisplay;
int hsync_start;
int hsync_end;
int htotal;
int vdisplay;
int vsync_start;
int vsync_end;
int vtotal;
int flags; /* Video mode flags; see below. */
const char *name;
};
/*
* Video mode flags.
*/
#define VID_PHSYNC 0x0001
#define VID_NHSYNC 0x0002
#define VID_PVSYNC 0x0004
#define VID_NVSYNC 0x0008
#define VID_INTERLACE 0x0010
#define VID_DBLSCAN 0x0020
#define VID_CSYNC 0x0040
#define VID_PCSYNC 0x0080
#define VID_NCSYNC 0x0100
#define VID_HSKEW 0x0200
#define VID_BCAST 0x0400
#define VID_PIXMUX 0x1000
#define VID_DBLCLK 0x2000
#define VID_CLKDIV2 0x4000
extern const struct videomode videomode_list[];
extern const int videomode_count;
#endif /* _DEV_VIDEOMODE_H */