1 #ifndef _LINUX_XGIFB
2 #define _LINUX_XGIFB
3 #include <linux/ioctl.h>
4 #include <linux/types.h>
5 
6 #include "vb_struct.h"
7 #include "vgatypes.h"
8 
9 enum xgifb_display_type {
10 	XGIFB_DISP_NONE = 0,
11 	XGIFB_DISP_CRT,
12 	XGIFB_DISP_LCD,
13 	XGIFB_DISP_TV,
14 };
15 
16 #define HASVB_NONE	    0x00
17 #define HASVB_301	    0x01
18 #define HASVB_LVDS	    0x02
19 #define HASVB_TRUMPION	    0x04
20 #define HASVB_LVDS_CHRONTEL 0x10
21 #define HASVB_302	    0x20
22 #define HASVB_CHRONTEL	    0x80
23 
24 enum XGI_CHIP_TYPE {
25 	XG40 = 32,
26 	XG41,
27 	XG42,
28 	XG45,
29 	XG20 = 48,
30 	XG21,
31 	XG27,
32 };
33 
34 enum xgi_tvtype {
35 	TVMODE_NTSC = 0,
36 	TVMODE_PAL,
37 	TVMODE_HIVISION,
38 	TVTYPE_PALM,	/* vicki@030226 */
39 	TVTYPE_PALN,	/* vicki@030226 */
40 	TVTYPE_NTSCJ,	/* vicki@030226 */
41 	TVMODE_TOTAL
42 };
43 
44 enum xgi_tv_plug { /* vicki@030226 */
45 	TVPLUG_UNKNOWN = 0,
46 	TVPLUG_COMPOSITE = 1,
47 	TVPLUG_SVIDEO = 2,
48 	TVPLUG_COMPOSITE_AND_SVIDEO = 3,
49 	TVPLUG_SCART = 4,
50 	TVPLUG_YPBPR_525i = 5,
51 	TVPLUG_YPBPR_525P = 6,
52 	TVPLUG_YPBPR_750P = 7,
53 	TVPLUG_YPBPR_1080i = 8,
54 	TVPLUG_TOTAL
55 };
56 
57 struct xgifb_video_info {
58 	struct fb_info *fb_info;
59 	struct xgi_hw_device_info hw_info;
60 	struct vb_device_info dev_info;
61 
62 	int mode_idx;
63 	int rate_idx;
64 
65 	u32 pseudo_palette[17];
66 
67 	int           chip_id;
68 	unsigned int  video_size;
69 	unsigned long video_base;
70 	void __iomem *video_vbase;
71 	unsigned long mmio_base;
72 	unsigned long mmio_size;
73 	void __iomem *mmio_vbase;
74 	unsigned long vga_base;
75 	unsigned long mtrr;
76 
77 	int    video_bpp;
78 	int    video_cmap_len;
79 	int    video_width;
80 	int    video_height;
81 	int    video_vwidth;
82 	int    video_vheight;
83 	int    org_x;
84 	int    org_y;
85 	int    video_linelength;
86 	unsigned int refresh_rate;
87 
88 	enum xgifb_display_type display2; /* the second display output type */
89 	bool display2_force;
90 	unsigned char hasVB;
91 	unsigned char TV_type;
92 	unsigned char TV_plug;
93 
94 	struct XGI21_LVDSCapStruct lvds_data;
95 
96 	enum XGI_CHIP_TYPE chip;
97 	unsigned char revision_id;
98 
99 	unsigned short DstColor;
100 	unsigned long  XGI310_AccelDepth;
101 	unsigned long  CommandReg;
102 
103 	unsigned int   pcibus;
104 	unsigned int   pcislot;
105 	unsigned int   pcifunc;
106 
107 	unsigned short subsysvendor;
108 	unsigned short subsysdevice;
109 
110 	char reserved[236];
111 };
112 
113 #endif
114