4 #include <linux/spinlock.h>
9 #define DISPTYPE_CRT1 0x00000008L
10 #define DISPTYPE_CRT2 0x00000004L
11 #define DISPTYPE_LCD 0x00000002L
12 #define DISPTYPE_TV 0x00000001L
13 #define DISPTYPE_DISP1 DISPTYPE_CRT1
14 #define DISPTYPE_DISP2 (DISPTYPE_CRT2 | DISPTYPE_LCD | DISPTYPE_TV)
15 #define DISPMODE_SINGLE 0x00000020L
16 #define DISPMODE_MIRROR 0x00000010L
17 #define DISPMODE_DUALVIEW 0x00000040L
19 #define HASVB_NONE 0x00
20 #define HASVB_301 0x01
21 #define HASVB_LVDS 0x02
22 #define HASVB_TRUMPION 0x04
23 #define HASVB_LVDS_CHRONTEL 0x10
24 #define HASVB_302 0x20
25 #define HASVB_303 0x40
26 #define HASVB_CHRONTEL 0x80
28 /* TW: *Never* change the order of the following enum */
29 typedef enum _SIS_CHIP_TYPE {
46 typedef enum _VGA_ENGINE {
52 typedef enum _TVTYPE {
59 typedef enum _TVPLUGTYPE {
84 struct mode_info minfo;
86 unsigned int mem_size;
87 unsigned long disp_state;
92 unsigned long version;
98 unsigned int video_size;
99 unsigned long video_base;
101 unsigned long mmio_base;
103 unsigned long vga_base;
105 unsigned long heapstart;
115 int video_linelength;
116 unsigned int refresh_rate;
118 unsigned long disp_state;
120 unsigned char TV_type;
121 unsigned char TV_plug;
124 unsigned char revision_id;
126 unsigned short DstColor; /* TW: For 2d acceleration */
127 unsigned long SiS310_AccelDepth;
128 unsigned long CommandReg;
130 spinlock_t lockaccel;
136 /* TW: Addtional IOCTL for communication sisfb <> X driver */
137 /* If changing this, vgatypes.h must also be changed (for X driver) */
139 /* TW: ioctl for identifying and giving some info (esp. memory heap start) */
140 #define SISFB_GET_INFO _IOR('n',0xF8,sizeof(__u32))
142 /* TW: Structure argument for SISFB_GET_INFO ioctl */
143 typedef struct _SISFB_INFO sisfb_info, *psisfb_info;
146 unsigned long sisfb_id; /* for identifying sisfb */
148 #define SISFB_ID 0x53495346 /* Identify myself with 'SISF' */
150 int chip_id; /* PCI ID of detected chip */
151 int memory; /* video memory in KB which sisfb manages */
152 int heapstart; /* heap start (= sisfb "mem" argument) in KB */
153 unsigned char fbvidmode; /* current sisfb mode */
155 unsigned char sisfb_version;
156 unsigned char sisfb_revision;
157 unsigned char sisfb_patchlevel;
159 unsigned char sisfb_caps; /* Sisfb capabilities */
161 int sisfb_tqlen; /* turbo queue length (in KB) */
163 char reserved[249]; /* for future use */
167 extern struct video_info ivideo;
169 extern void sis_malloc(struct sis_memreq *req);
170 extern void sis_free(unsigned long base);
171 extern void sis_dispinfo(struct ap_data *rec);