1#ifndef _LINUX_XGIFB
2#define _LINUX_XGIFB
3#include <linux/ioctl.h>
4#include <linux/types.h>
5
6#include "vgatypes.h"
7#include "vb_struct.h"
8
9enum 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
24enum XGI_CHIP_TYPE {
25 XG40 = 32,
26 XG41,
27 XG42,
28 XG45,
29 XG20 = 48,
30 XG21,
31 XG27,
32};
33
34enum xgi_tvtype {
35 TVMODE_NTSC = 0,
36 TVMODE_PAL,
37 TVMODE_HIVISION,
38 TVTYPE_PALM,
39 TVTYPE_PALN,
40 TVTYPE_NTSCJ,
41 TVMODE_TOTAL
42};
43
44enum xgi_tv_plug {
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
57struct 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;
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