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