Merge branch 'stable/xen-swiotlb-0.8.6' of git://git.kernel.org/pub/scm/linux/kernel...
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / staging / xgifb / XGIfb.h
CommitLineData
d7636e0b 1#ifndef _LINUX_XGIFB
2#define _LINUX_XGIFB
3#include <linux/spinlock.h>
4#include <asm/ioctl.h>
5#include <asm/types.h>
6
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
16
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
25
26#ifndef XGIFB_ID
27#define XGIFB_ID 0x53495346 /* Identify myself with 'XGIF' */
28#endif
29
716083c6 30enum XGI_CHIP_TYPE {
d7636e0b 31 XGI_VGALegacy = 0,
32 XGI_300,
33 XGI_630,
34 XGI_730,
35 XGI_540,
36 XGI_315H,
37 XGI_315,
38 XGI_315PRO,
39 XGI_550,
40 XGI_640,
41 XGI_740,
42 XGI_650,
43 XGI_650M,
44 XGI_330 = 16,
45 XGI_660,
46 XGI_661,
47 XGI_760,
48 XG40 = 32,
49 XG41,
50 XG42,
51 XG45,
52 XG20 = 48,
53 XG21,
54 XG27,
55 MAX_XGI_CHIP
716083c6 56};
d7636e0b 57
716083c6 58enum xgi_tvtype {
d7636e0b 59 TVMODE_NTSC = 0,
60 TVMODE_PAL,
61 TVMODE_HIVISION,
62 TVTYPE_PALM, // vicki@030226
63 TVTYPE_PALN, // vicki@030226
64 TVTYPE_NTSCJ, // vicki@030226
65 TVMODE_TOTAL
716083c6 66};
d7636e0b 67
d7636e0b 68
716083c6
BP
69struct XGIfb_info {
70 unsigned long XGIfb_id;
d7636e0b 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 */
75
76 unsigned char XGIfb_version;
77 unsigned char XGIfb_revision;
78 unsigned char XGIfb_patchlevel;
79
80 unsigned char XGIfb_caps; /* XGIfb capabilities */
81
82 int XGIfb_tqlen; /* turbo queue length (in KB) */
83
84 unsigned int XGIfb_pcibus; /* The card's PCI ID */
85 unsigned int XGIfb_pcislot;
86 unsigned int XGIfb_pcifunc;
87
88 unsigned char XGIfb_lcdpdc; /* PanelDelayCompensation */
89
90 unsigned char XGIfb_lcda; /* Detected status of LCDA for low res/text modes */
91
92 char reserved[235]; /* for future use */
93};
94
95
96
97
a3e735a5 98enum xgi_tv_plug { /* vicki@030226 */
d7636e0b 99// TVPLUG_Legacy = 0,
100// TVPLUG_COMPOSITE,
101// TVPLUG_SVIDEO,
102// TVPLUG_SCART,
103// TVPLUG_TOTAL
104 TVPLUG_UNKNOWN = 0,
105 TVPLUG_COMPOSITE = 1,
106 TVPLUG_SVIDEO = 2,
107 TVPLUG_COMPOSITE_AND_SVIDEO = 3,
108 TVPLUG_SCART = 4,
109 TVPLUG_YPBPR_525i = 5,
110 TVPLUG_YPBPR_525P = 6,
111 TVPLUG_YPBPR_750P = 7,
112 TVPLUG_YPBPR_1080i = 8,
113 TVPLUG_TOTAL
a3e735a5 114};
d7636e0b 115
116
117struct mode_info {
118 int bpp;
119 int xres;
120 int yres;
121 int v_xres;
122 int v_yres;
123 int org_x;
124 int org_y;
125 unsigned int vrate;
126};
127
128struct ap_data {
129 struct mode_info minfo;
130 unsigned long iobase;
131 unsigned int mem_size;
132 unsigned long disp_state;
716083c6 133 enum XGI_CHIP_TYPE chip;
d7636e0b 134 unsigned char hasVB;
716083c6 135 enum xgi_tvtype TV_type;
a3e735a5 136 enum xgi_tv_plug TV_plug;
d7636e0b 137 unsigned long version;
138 char reserved[256];
139};
140
141
142
143/* If changing this, vgatypes.h must also be changed (for X driver) */
144
145
146/*
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!
152 */
153#define XGIFB_GET_INFO _IOR('n',0xF8,__u32)
154#define XGIFB_GET_VBRSTATUS _IOR('n',0xF9,__u32)
155
156
157
158struct video_info{
159 int chip_id;
160 unsigned int video_size;
161 unsigned long video_base;
162 char * video_vbase;
163 unsigned long mmio_base;
164 char * mmio_vbase;
165 unsigned long vga_base;
166 unsigned long mtrr;
167 unsigned long heapstart;
168
169 int video_bpp;
170 int video_cmap_len;
171 int video_width;
172 int video_height;
173 int video_vwidth;
174 int video_vheight;
175 int org_x;
176 int org_y;
177 int video_linelength;
178 unsigned int refresh_rate;
179
180 unsigned long disp_state;
181 unsigned char hasVB;
182 unsigned char TV_type;
183 unsigned char TV_plug;
184
716083c6 185 enum XGI_CHIP_TYPE chip;
d7636e0b 186 unsigned char revision_id;
187
188 unsigned short DstColor;
189 unsigned long XGI310_AccelDepth;
190 unsigned long CommandReg;
191
192 spinlock_t lockaccel;
193
194 unsigned int pcibus;
195 unsigned int pcislot;
196 unsigned int pcifunc;
197
198 int accel;
199 unsigned short subsysvendor;
200 unsigned short subsysdevice;
201
202 char reserved[236];
203};
204
205
206extern struct video_info xgi_video_info;
207
d7636e0b 208#endif