ast_mode.h revision b4d38c65
1/*
2 * Copyright (c) 2005 ASPEED Technology Inc.
3 *
4 * Permission to use, copy, modify, distribute, and sell this software and its
5 * documentation for any purpose is hereby granted without fee, provided that
6 * the above copyright notice appear in all copies and that both that
7 * copyright notice and this permission notice appear in supporting
8 * documentation, and that the name of the authors not be used in
9 * advertising or publicity pertaining to distribution of the software without
10 * specific, written prior permission.  The authors makes no representations
11 * about the suitability of this software for any purpose.  It is provided
12 * "as is" without express or implied warranty.
13 *
14 * THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16 * EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20 * PERFORMANCE OF THIS SOFTWARE.
21 */
22
23/* Mode Limitation */
24#define MAX_HResolution		1920
25#define MAX_VResolution		1200
26
27/* Std. Table Index Definition */
28#define TextModeIndex 		0
29#define EGAModeIndex 		1
30#define VGAModeIndex 		2
31#define HiCModeIndex 		3
32#define TrueCModeIndex 		4
33
34/* DCLK Index */
35#define VCLK25_175     		0x00
36#define VCLK28_322     		0x01
37#define VCLK31_5       		0x02
38#define VCLK36         		0x03
39#define VCLK40         		0x04
40#define VCLK49_5       		0x05
41#define VCLK50         		0x06
42#define VCLK56_25      		0x07
43#define VCLK65		 	0x08
44#define VCLK75	        	0x09
45#define VCLK78_75      		0x0A
46#define VCLK94_5       		0x0B
47#define VCLK108        		0x0C
48#define VCLK135        		0x0D
49#define VCLK157_5      		0x0E
50#define VCLK162        		0x0F
51/* #define VCLK193_25     		0x10 */
52#define VCLK154     		0x10
53#define VCLK83_5    		0x11
54#define VCLK106_5   		0x12
55#define VCLK146_25  		0x13
56#define VCLK148_5   		0x14
57#define VCLK71      		0x15
58#define VCLK88_75   		0x16
59#define VCLK119     		0x17
60
61/* Flags Definition */
62#define Charx8Dot               0x00000001
63#define HalfDCLK                0x00000002
64#define DoubleScanMode          0x00000004
65#define LineCompareOff          0x00000008
66#define SyncPP                  0x00000000
67#define SyncPN                  0x00000040
68#define SyncNP                  0x00000080
69#define SyncNN                  0x000000C0
70#define HBorder                 0x00000020
71#define VBorder                 0x00000010
72#define WideScreenMode		0x00000100
73
74/* DAC Definition */
75#define DAC_NUM_TEXT		64
76#define DAC_NUM_EGA		64
77#define DAC_NUM_VGA		256
78
79/* Data Structure decalration for internal use */
80typedef struct {
81
82    UCHAR MISC;
83    UCHAR SEQ[4];
84    UCHAR CRTC[25];
85    UCHAR AR[20];
86    UCHAR GR[9];
87
88} VBIOS_STDTABLE_STRUCT, *PVBIOS_STDTABLE_STRUCT;
89
90typedef struct {
91
92    ULONG HT;
93    ULONG HDE;
94    ULONG HFP;
95    ULONG HSYNC;
96    ULONG VT;
97    ULONG VDE;
98    ULONG VFP;
99    ULONG VSYNC;
100    ULONG DCLKIndex;
101    ULONG Flags;
102
103    ULONG ulRefreshRate;
104    ULONG ulRefreshRateIndex;
105    ULONG ulModeID;
106
107} VBIOS_ENHTABLE_STRUCT, *PVBIOS_ENHTABLE_STRUCT;
108
109typedef struct {
110    UCHAR Param1;
111    UCHAR Param2;
112    UCHAR Param3;
113} VBIOS_DCLK_INFO, *PVBIOS_DCLK_INFO;
114
115typedef struct {
116    UCHAR DACR;
117    UCHAR DACG;
118    UCHAR DACB;
119} VBIOS_DAC_INFO, *PVBIOS_DAC_INFO;
120
121typedef struct {
122    PVBIOS_STDTABLE_STRUCT pStdTableEntry;
123    PVBIOS_ENHTABLE_STRUCT pEnhTableEntry;
124
125} VBIOS_MODE_INFO, *PVBIOS_MODE_INFO;
126