• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/drivers/staging/xgifb/
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
30enum XGI_CHIP_TYPE {
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
56};
57
58enum xgi_tvtype {
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
66};
67
68
69struct XGIfb_info {
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 */
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
98enum xgi_tv_plug {	/* vicki@030226 */
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
114};
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;
133	enum XGI_CHIP_TYPE chip;
134	unsigned char hasVB;
135	enum xgi_tvtype TV_type;
136	enum xgi_tv_plug TV_plug;
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
185	enum XGI_CHIP_TYPE chip;
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
208#endif
209