d7636e0b |
1 | |
2 | #ifndef _VGATYPES_ |
3 | #define _VGATYPES_ |
4 | |
d7636e0b |
5 | #include <linux/ioctl.h> |
d7636e0b |
6 | |
d7636e0b |
7 | #ifndef CHAR |
8 | typedef char CHAR; |
9 | #endif |
10 | |
11 | #ifndef SHORT |
12 | typedef short SHORT; |
13 | #endif |
14 | |
15 | #ifndef LONG |
16 | typedef long LONG; |
17 | #endif |
18 | |
19 | #ifndef UCHAR |
20 | typedef unsigned char UCHAR; |
21 | #endif |
22 | |
23 | #ifndef USHORT |
24 | typedef unsigned short USHORT; |
25 | #endif |
26 | |
27 | #ifndef ULONG |
28 | typedef unsigned long ULONG; |
29 | #endif |
30 | |
d7636e0b |
31 | #ifndef VOID |
32 | typedef void VOID; |
33 | #endif |
34 | |
d7636e0b |
35 | #ifndef BOOLEAN |
36 | typedef UCHAR BOOLEAN; |
37 | #endif |
38 | /* |
39 | #ifndef bool |
40 | typedef UCHAR bool; |
41 | #endif |
42 | */ |
d7636e0b |
43 | typedef unsigned long XGIIOADDRESS; |
d7636e0b |
44 | |
d7636e0b |
45 | |
46 | #ifndef VBIOS_VER_MAX_LENGTH |
47 | #define VBIOS_VER_MAX_LENGTH 4 |
48 | #endif |
49 | |
d7636e0b |
50 | #ifndef XGI_VB_CHIP_TYPE |
51 | typedef enum _XGI_VB_CHIP_TYPE { |
52 | VB_CHIP_Legacy = 0, |
53 | VB_CHIP_301, |
54 | VB_CHIP_301B, |
55 | VB_CHIP_301LV, |
56 | VB_CHIP_302, |
57 | VB_CHIP_302B, |
58 | VB_CHIP_302LV, |
59 | VB_CHIP_301C, |
60 | VB_CHIP_302ELV, |
61 | VB_CHIP_UNKNOWN, /* other video bridge or no video bridge */ |
62 | MAX_VB_CHIP |
63 | } XGI_VB_CHIP_TYPE; |
64 | #endif |
65 | |
66 | #ifndef XGI_LCD_TYPE |
67 | typedef enum _XGI_LCD_TYPE { |
68 | LCD_INVALID = 0, |
69 | LCD_320x480, /* FSTN, DSTN */ |
70 | LCD_640x480, |
71 | LCD_640x480_2, /* FSTN, DSTN */ |
72 | LCD_640x480_3, /* FSTN, DSTN */ |
73 | LCD_800x600, |
74 | LCD_848x480, |
75 | LCD_1024x600, |
76 | LCD_1024x768, |
77 | LCD_1152x768, |
78 | LCD_1152x864, |
79 | LCD_1280x720, |
80 | LCD_1280x768, |
81 | LCD_1280x800, |
82 | LCD_1280x960, |
83 | LCD_1280x1024, |
84 | LCD_1400x1050, |
85 | LCD_1600x1200, |
86 | LCD_1680x1050, |
87 | LCD_1920x1440, |
88 | LCD_2048x1536, |
89 | LCD_CUSTOM, |
90 | LCD_UNKNOWN |
91 | } XGI_LCD_TYPE; |
92 | #endif |
93 | |
d7636e0b |
94 | #ifndef PXGI_DSReg |
95 | typedef struct _XGI_DSReg |
96 | { |
97 | UCHAR jIdx; |
98 | UCHAR jVal; |
99 | } XGI_DSReg, *PXGI_DSReg; |
100 | #endif |
101 | |
102 | #ifndef XGI_HW_DEVICE_INFO |
103 | |
104 | typedef struct _XGI_HW_DEVICE_INFO XGI_HW_DEVICE_INFO, *PXGI_HW_DEVICE_INFO; |
105 | |
106 | typedef BOOLEAN (*PXGI_QUERYSPACE) (PXGI_HW_DEVICE_INFO, ULONG, ULONG, ULONG *); |
107 | |
108 | struct _XGI_HW_DEVICE_INFO |
109 | { |
110 | ULONG ulExternalChip; /* NO VB or other video bridge*/ |
111 | /* if ujVBChipID = VB_CHIP_UNKNOWN, */ |
d7636e0b |
112 | |
274afb73 |
113 | unsigned char *pjVirtualRomBase; /* ROM image */ |
d7636e0b |
114 | |
115 | BOOLEAN UseROM; /* Use the ROM image if provided */ |
116 | |
fc3678a6 |
117 | void *pDevice; |
d7636e0b |
118 | |
274afb73 |
119 | unsigned char *pjVideoMemoryAddress;/* base virtual memory address */ |
d7636e0b |
120 | /* of Linear VGA memory */ |
121 | |
122 | ULONG ulVideoMemorySize; /* size, in bytes, of the memory on the board */ |
123 | |
274afb73 |
124 | unsigned char *pjIOAddress; /* base I/O address of VGA ports (0x3B0) */ |
d7636e0b |
125 | |
274afb73 |
126 | unsigned char *pjCustomizedROMImage; |
d7636e0b |
127 | |
274afb73 |
128 | unsigned char *pj2ndVideoMemoryAddress; |
d7636e0b |
129 | ULONG ul2ndVideoMemorySize; |
130 | |
274afb73 |
131 | unsigned char *pj2ndIOAddress; |
d7636e0b |
132 | UCHAR jChipType; /* Used to Identify Graphics Chip */ |
133 | /* defined in the data structure type */ |
134 | /* "XGI_CHIP_TYPE" */ |
135 | |
136 | UCHAR jChipRevision; /* Used to Identify Graphics Chip Revision */ |
137 | |
138 | UCHAR ujVBChipID; /* the ID of video bridge */ |
139 | /* defined in the data structure type */ |
140 | /* "XGI_VB_CHIP_TYPE" */ |
141 | |
142 | BOOLEAN bNewScratch; |
143 | |
144 | ULONG ulCRT2LCDType; /* defined in the data structure type */ |
145 | |
146 | ULONG usExternalChip; /* NO VB or other video bridge (other than */ |
147 | /* video bridge) */ |
148 | |
149 | BOOLEAN bIntegratedMMEnabled;/* supporting integration MM enable */ |
150 | |
151 | BOOLEAN bSkipDramSizing; /* True: Skip video memory sizing. */ |
152 | |
153 | BOOLEAN bSkipSense; |
154 | |
155 | BOOLEAN bIsPowerSaving; /* True: XGIInit() is invoked by power management, |
156 | otherwise by 2nd adapter's initialzation */ |
157 | |
158 | PXGI_DSReg pSR; /* restore SR registers in initial function. */ |
159 | /* end data :(idx, val) = (FF, FF). */ |
160 | /* Note : restore SR registers if */ |
dda08c59 |
161 | /* bSkipDramSizing = 1 */ |
d7636e0b |
162 | |
163 | PXGI_DSReg pCR; /* restore CR registers in initial function. */ |
164 | /* end data :(idx, val) = (FF, FF) */ |
165 | /* Note : restore cR registers if */ |
dda08c59 |
166 | /* bSkipDramSizing = 1 */ |
d7636e0b |
167 | /* |
168 | #endif |
169 | */ |
170 | |
171 | PXGI_QUERYSPACE pQueryVGAConfigSpace; |
172 | |
173 | PXGI_QUERYSPACE pQueryNorthBridgeSpace; |
174 | |
175 | UCHAR szVBIOSVer[VBIOS_VER_MAX_LENGTH]; |
176 | |
177 | }; |
178 | #endif |
179 | |
180 | /* Addtional IOCTL for communication xgifb <> X driver */ |
181 | /* If changing this, xgifb.h must also be changed (for xgifb) */ |
182 | |
d7636e0b |
183 | |
184 | #endif |
185 | |