ast_mode.h revision 15fb4814
115fb4814Smrg/*
215fb4814Smrg * Copyright (c) 2005 ASPEED Technology Inc.
315fb4814Smrg *
415fb4814Smrg * Permission to use, copy, modify, distribute, and sell this software and its
515fb4814Smrg * documentation for any purpose is hereby granted without fee, provided that
615fb4814Smrg * the above copyright notice appear in all copies and that both that
715fb4814Smrg * copyright notice and this permission notice appear in supporting
815fb4814Smrg * documentation, and that the name of the authors not be used in
915fb4814Smrg * advertising or publicity pertaining to distribution of the software without
1015fb4814Smrg * specific, written prior permission.  The authors makes no representations
1115fb4814Smrg * about the suitability of this software for any purpose.  It is provided
1215fb4814Smrg * "as is" without express or implied warranty.
1315fb4814Smrg *
1415fb4814Smrg * THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
1515fb4814Smrg * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
1615fb4814Smrg * EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
1715fb4814Smrg * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
1815fb4814Smrg * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
1915fb4814Smrg * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
2015fb4814Smrg * PERFORMANCE OF THIS SOFTWARE.
2115fb4814Smrg */
2215fb4814Smrg
2315fb4814Smrg/* Mode Limitation */
2415fb4814Smrg#define MAX_HResolution		1600
2515fb4814Smrg#define MAX_VResolution		1200
2615fb4814Smrg
2715fb4814Smrg/* Std. Table Index Definition */
2815fb4814Smrg#define TextModeIndex 		0
2915fb4814Smrg#define EGAModeIndex 		1
3015fb4814Smrg#define VGAModeIndex 		2
3115fb4814Smrg#define HiCModeIndex 		3
3215fb4814Smrg#define TrueCModeIndex 		4
3315fb4814Smrg
3415fb4814Smrg/* DCLK Index */
3515fb4814Smrg#define VCLK25_175     		0x00
3615fb4814Smrg#define VCLK28_322     		0x01
3715fb4814Smrg#define VCLK31_5       		0x02
3815fb4814Smrg#define VCLK36         		0x03
3915fb4814Smrg#define VCLK40         		0x04
4015fb4814Smrg#define VCLK49_5       		0x05
4115fb4814Smrg#define VCLK50         		0x06
4215fb4814Smrg#define VCLK56_25      		0x07
4315fb4814Smrg#define VCLK65		 	0x08
4415fb4814Smrg#define VCLK75	        	0x09
4515fb4814Smrg#define VCLK78_75      		0x0A
4615fb4814Smrg#define VCLK94_5       		0x0B
4715fb4814Smrg#define VCLK108        		0x0C
4815fb4814Smrg#define VCLK135        		0x0D
4915fb4814Smrg#define VCLK157_5      		0x0E
5015fb4814Smrg#define VCLK162        		0x0F
5115fb4814Smrg
5215fb4814Smrg/* Flags Definition */
5315fb4814Smrg#define Charx8Dot               0x00000001
5415fb4814Smrg#define HalfDCLK                0x00000002
5515fb4814Smrg#define DoubleScanMode          0x00000004
5615fb4814Smrg#define LineCompareOff          0x00000008
5715fb4814Smrg#define SyncPP                  0x00000000
5815fb4814Smrg#define SyncPN                  0x00000040
5915fb4814Smrg#define SyncNP                  0x00000080
6015fb4814Smrg#define SyncNN                  0x000000C0
6115fb4814Smrg#define HBorder                 0x00000020
6215fb4814Smrg#define VBorder                 0x00000010
6315fb4814Smrg
6415fb4814Smrg/* DAC Definition */
6515fb4814Smrg#define DAC_NUM_TEXT		64
6615fb4814Smrg#define DAC_NUM_EGA		64
6715fb4814Smrg#define DAC_NUM_VGA		256
6815fb4814Smrg
6915fb4814Smrg/* Data Structure decalration for internal use */
7015fb4814Smrgtypedef struct {
7115fb4814Smrg
7215fb4814Smrg    UCHAR MISC;
7315fb4814Smrg    UCHAR SEQ[4];
7415fb4814Smrg    UCHAR CRTC[25];
7515fb4814Smrg    UCHAR AR[20];
7615fb4814Smrg    UCHAR GR[9];
7715fb4814Smrg
7815fb4814Smrg} VBIOS_STDTABLE_STRUCT, *PVBIOS_STDTABLE_STRUCT;
7915fb4814Smrg
8015fb4814Smrgtypedef struct {
8115fb4814Smrg
8215fb4814Smrg    ULONG HT;
8315fb4814Smrg    ULONG HDE;
8415fb4814Smrg    ULONG HFP;
8515fb4814Smrg    ULONG HSYNC;
8615fb4814Smrg    ULONG VT;
8715fb4814Smrg    ULONG VDE;
8815fb4814Smrg    ULONG VFP;
8915fb4814Smrg    ULONG VSYNC;
9015fb4814Smrg    ULONG DCLKIndex;
9115fb4814Smrg    ULONG Flags;
9215fb4814Smrg
9315fb4814Smrg    ULONG ulRefreshRate;
9415fb4814Smrg    ULONG ulRefreshRateIndex;
9515fb4814Smrg    ULONG ulModeID;
9615fb4814Smrg
9715fb4814Smrg} VBIOS_ENHTABLE_STRUCT, *PVBIOS_ENHTABLE_STRUCT;
9815fb4814Smrg
9915fb4814Smrgtypedef struct {
10015fb4814Smrg    UCHAR Param1;
10115fb4814Smrg    UCHAR Param2;
10215fb4814Smrg    UCHAR Param3;
10315fb4814Smrg} VBIOS_DCLK_INFO, *PVBIOS_DCLK_INFO;
10415fb4814Smrg
10515fb4814Smrgtypedef struct {
10615fb4814Smrg    UCHAR DACR;
10715fb4814Smrg    UCHAR DACG;
10815fb4814Smrg    UCHAR DACB;
10915fb4814Smrg} VBIOS_DAC_INFO, *PVBIOS_DAC_INFO;
11015fb4814Smrg
11115fb4814Smrgtypedef struct {
11215fb4814Smrg    PVBIOS_STDTABLE_STRUCT pStdTableEntry;
11315fb4814Smrg    PVBIOS_ENHTABLE_STRUCT pEnhTableEntry;
11415fb4814Smrg
11515fb4814Smrg} VBIOS_MODE_INFO, *PVBIOS_MODE_INFO;
116