3 #include <linux/spinlock.h>
7 #define DISPTYPE_CRT1 0x00000008L
8 #define DISPTYPE_CRT2 0x00000004L
9 #define DISPTYPE_LCD 0x00000002L
10 #define DISPTYPE_TV 0x00000001L
11 #define DISPTYPE_DISP1 DISPTYPE_CRT1
12 #define DISPTYPE_DISP2 (DISPTYPE_CRT2 | DISPTYPE_LCD | DISPTYPE_TV)
13 #define DISPMODE_SINGLE 0x00000020L
14 #define DISPMODE_MIRROR 0x00000010L
15 #define DISPMODE_DUALVIEW 0x00000040L
17 #define HASVB_NONE 0x00
18 #define HASVB_301 0x01
19 #define HASVB_LVDS 0x02
20 #define HASVB_TRUMPION 0x04
21 #define HASVB_LVDS_CHRONTEL 0x10
22 #define HASVB_302 0x20
23 #define HASVB_303 0x40
24 #define HASVB_CHRONTEL 0x80
27 #define XGIFB_ID 0x53495346 /* Identify myself with 'XGIF' */
62 TVTYPE_PALM, // vicki@030226
63 TVTYPE_PALN, // vicki@030226
64 TVTYPE_NTSCJ, // vicki@030226
70 unsigned long XGIfb_id;
71 int chip_id; /* PCI ID of detected chip */
72 int memory; /* video memory in KB which XGIfb manages */
73 int heapstart; /* heap start (= XGIfb "mem" argument) in KB */
74 unsigned char fbvidmode; /* current XGIfb mode */
76 unsigned char XGIfb_version;
77 unsigned char XGIfb_revision;
78 unsigned char XGIfb_patchlevel;
80 unsigned char XGIfb_caps; /* XGIfb capabilities */
82 int XGIfb_tqlen; /* turbo queue length (in KB) */
84 unsigned int XGIfb_pcibus; /* The card's PCI ID */
85 unsigned int XGIfb_pcislot;
86 unsigned int XGIfb_pcifunc;
88 unsigned char XGIfb_lcdpdc; /* PanelDelayCompensation */
90 unsigned char XGIfb_lcda; /* Detected status of LCDA for low res/text modes */
92 char reserved[235]; /* for future use */
98 enum xgi_tv_plug { /* vicki@030226 */
105 TVPLUG_COMPOSITE = 1,
107 TVPLUG_COMPOSITE_AND_SVIDEO = 3,
109 TVPLUG_YPBPR_525i = 5,
110 TVPLUG_YPBPR_525P = 6,
111 TVPLUG_YPBPR_750P = 7,
112 TVPLUG_YPBPR_1080i = 8,
129 struct mode_info minfo;
130 unsigned long iobase;
131 unsigned int mem_size;
132 unsigned long disp_state;
133 enum XGI_CHIP_TYPE chip;
135 enum xgi_tvtype TV_type;
136 enum xgi_tv_plug TV_plug;
137 unsigned long version;
143 /* If changing this, vgatypes.h must also be changed (for X driver) */
147 * NOTE! The ioctl types used to be "size_t" by mistake, but were
148 * really meant to be __u32. Changed to "__u32" even though that
149 * changes the value on 64-bit architectures, because the value
150 * (with a 4-byte size) is also hardwired in vgatypes.h for user
151 * space exports. So "__u32" is actually more compatible, duh!
153 #define XGIFB_GET_INFO _IOR('n',0xF8,__u32)
154 #define XGIFB_GET_VBRSTATUS _IOR('n',0xF9,__u32)
160 unsigned int video_size;
161 unsigned long video_base;
163 unsigned long mmio_base;
165 unsigned long vga_base;
167 unsigned long heapstart;
177 int video_linelength;
178 unsigned int refresh_rate;
180 unsigned long disp_state;
182 unsigned char TV_type;
183 unsigned char TV_plug;
185 enum XGI_CHIP_TYPE chip;
186 unsigned char revision_id;
188 unsigned short DstColor;
189 unsigned long XGI310_AccelDepth;
190 unsigned long CommandReg;
192 spinlock_t lockaccel;
195 unsigned int pcislot;
196 unsigned int pcifunc;
199 unsigned short subsysvendor;
200 unsigned short subsysdevice;
206 extern struct video_info xgi_video_info;