ast_mode.h revision 7fe5393c
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 */
24de78e416Smrg#define MAX_HResolution		1920
2515fb4814Smrg#define MAX_VResolution		1200
267fe5393cSmrg
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
51de78e416Smrg/* #define VCLK193_25     		0x10 */
52de78e416Smrg#define VCLK154     		0x10
53b410ddbeSmrg#define VCLK83_5    		0x11
54b410ddbeSmrg#define VCLK106_5   		0x12
55b410ddbeSmrg#define VCLK146_25  		0x13
56b410ddbeSmrg#define VCLK148_5   		0x14
57b4d38c65Smrg#define VCLK71      		0x15
58b4d38c65Smrg#define VCLK88_75   		0x16
59b4d38c65Smrg#define VCLK119     		0x17
607fe5393cSmrg#define VCLK85_5     		0x18
617fe5393cSmrg#define VCLK97_75     		0x19
6215fb4814Smrg
6315fb4814Smrg/* Flags Definition */
6415fb4814Smrg#define Charx8Dot               0x00000001
6515fb4814Smrg#define HalfDCLK                0x00000002
6615fb4814Smrg#define DoubleScanMode          0x00000004
6715fb4814Smrg#define LineCompareOff          0x00000008
6815fb4814Smrg#define SyncPP                  0x00000000
6915fb4814Smrg#define SyncPN                  0x00000040
7015fb4814Smrg#define SyncNP                  0x00000080
7115fb4814Smrg#define SyncNN                  0x000000C0
7215fb4814Smrg#define HBorder                 0x00000020
7315fb4814Smrg#define VBorder                 0x00000010
747fe5393cSmrg#define WideScreenMode		    0x00000100
757fe5393cSmrg#define NewModeInfo		        0x00000200
7615fb4814Smrg
7715fb4814Smrg/* DAC Definition */
7815fb4814Smrg#define DAC_NUM_TEXT		64
7915fb4814Smrg#define DAC_NUM_EGA		64
8015fb4814Smrg#define DAC_NUM_VGA		256
8115fb4814Smrg
8215fb4814Smrg/* Data Structure decalration for internal use */
8315fb4814Smrgtypedef struct {
847fe5393cSmrg
857fe5393cSmrg    UCHAR MISC;
8615fb4814Smrg    UCHAR SEQ[4];
8715fb4814Smrg    UCHAR CRTC[25];
887fe5393cSmrg    UCHAR AR[20];
8915fb4814Smrg    UCHAR GR[9];
907fe5393cSmrg
9115fb4814Smrg} VBIOS_STDTABLE_STRUCT, *PVBIOS_STDTABLE_STRUCT;
9215fb4814Smrg
9315fb4814Smrgtypedef struct {
947fe5393cSmrg
9515fb4814Smrg    ULONG HT;
9615fb4814Smrg    ULONG HDE;
9715fb4814Smrg    ULONG HFP;
9815fb4814Smrg    ULONG HSYNC;
9915fb4814Smrg    ULONG VT;
10015fb4814Smrg    ULONG VDE;
10115fb4814Smrg    ULONG VFP;
10215fb4814Smrg    ULONG VSYNC;
1037fe5393cSmrg    ULONG DCLKIndex;
10415fb4814Smrg    ULONG Flags;
10515fb4814Smrg
10615fb4814Smrg    ULONG ulRefreshRate;
10715fb4814Smrg    ULONG ulRefreshRateIndex;
10815fb4814Smrg    ULONG ulModeID;
1097fe5393cSmrg
11015fb4814Smrg} VBIOS_ENHTABLE_STRUCT, *PVBIOS_ENHTABLE_STRUCT;
11115fb4814Smrg
11215fb4814Smrgtypedef struct {
11315fb4814Smrg    UCHAR Param1;
11415fb4814Smrg    UCHAR Param2;
1157fe5393cSmrg    UCHAR Param3;
11615fb4814Smrg} VBIOS_DCLK_INFO, *PVBIOS_DCLK_INFO;
11715fb4814Smrg
11815fb4814Smrgtypedef struct {
11915fb4814Smrg    UCHAR DACR;
12015fb4814Smrg    UCHAR DACG;
1217fe5393cSmrg    UCHAR DACB;
12215fb4814Smrg} VBIOS_DAC_INFO, *PVBIOS_DAC_INFO;
12315fb4814Smrg
12415fb4814Smrgtypedef struct {
12515fb4814Smrg    PVBIOS_STDTABLE_STRUCT pStdTableEntry;
12615fb4814Smrg    PVBIOS_ENHTABLE_STRUCT pEnhTableEntry;
1277fe5393cSmrg
12815fb4814Smrg} VBIOS_MODE_INFO, *PVBIOS_MODE_INFO;
129