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' */
30 typedef enum _XGI_CHIP_TYPE
{
58 typedef enum _TVTYPE
{
62 TVTYPE_PALM
, // vicki@030226
63 TVTYPE_PALN
, // vicki@030226
64 TVTYPE_NTSCJ
, // vicki@030226
69 typedef struct _XGIFB_INFO XGIfb_info
;
72 unsigned long XGIfb_id
;
73 int chip_id
; /* PCI ID of detected chip */
74 int memory
; /* video memory in KB which XGIfb manages */
75 int heapstart
; /* heap start (= XGIfb "mem" argument) in KB */
76 unsigned char fbvidmode
; /* current XGIfb mode */
78 unsigned char XGIfb_version
;
79 unsigned char XGIfb_revision
;
80 unsigned char XGIfb_patchlevel
;
82 unsigned char XGIfb_caps
; /* XGIfb capabilities */
84 int XGIfb_tqlen
; /* turbo queue length (in KB) */
86 unsigned int XGIfb_pcibus
; /* The card's PCI ID */
87 unsigned int XGIfb_pcislot
;
88 unsigned int XGIfb_pcifunc
;
90 unsigned char XGIfb_lcdpdc
; /* PanelDelayCompensation */
92 unsigned char XGIfb_lcda
; /* Detected status of LCDA for low res/text modes */
94 char reserved
[235]; /* for future use */
100 typedef enum _TVPLUGTYPE
{ // vicki@030226
101 // TVPLUG_Legacy = 0,
107 TVPLUG_COMPOSITE
= 1,
109 TVPLUG_COMPOSITE_AND_SVIDEO
= 3,
111 TVPLUG_YPBPR_525i
= 5,
112 TVPLUG_YPBPR_525P
= 6,
113 TVPLUG_YPBPR_750P
= 7,
114 TVPLUG_YPBPR_1080i
= 8,
131 struct mode_info minfo
;
132 unsigned long iobase
;
133 unsigned int mem_size
;
134 unsigned long disp_state
;
139 unsigned long version
;
145 /* If changing this, vgatypes.h must also be changed (for X driver) */
149 * NOTE! The ioctl types used to be "size_t" by mistake, but were
150 * really meant to be __u32. Changed to "__u32" even though that
151 * changes the value on 64-bit architectures, because the value
152 * (with a 4-byte size) is also hardwired in vgatypes.h for user
153 * space exports. So "__u32" is actually more compatible, duh!
155 #define XGIFB_GET_INFO _IOR('n',0xF8,__u32)
156 #define XGIFB_GET_VBRSTATUS _IOR('n',0xF9,__u32)
162 unsigned int video_size
;
163 unsigned long video_base
;
165 unsigned long mmio_base
;
167 unsigned long vga_base
;
169 unsigned long heapstart
;
179 int video_linelength
;
180 unsigned int refresh_rate
;
182 unsigned long disp_state
;
184 unsigned char TV_type
;
185 unsigned char TV_plug
;
188 unsigned char revision_id
;
190 unsigned short DstColor
;
191 unsigned long XGI310_AccelDepth
;
192 unsigned long CommandReg
;
194 spinlock_t lockaccel
;
197 unsigned int pcislot
;
198 unsigned int pcifunc
;
201 unsigned short subsysvendor
;
202 unsigned short subsysdevice
;
208 extern struct video_info xgi_video_info
;
211 //extern void xgi_malloc(struct xgi_memreq *req);
212 extern void xgi_free(unsigned long base
);
213 extern void xgi_dispinfo(struct ap_data
*rec
);