blob: 45b6015d160c33ae2ad304f99aff98ce8f13e55a [file] [log] [blame]
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001#ifndef _LINUX_XGIFB
2#define _LINUX_XGIFB
Kenji Toyamaa17379e2011-04-24 13:55:49 +08003#include <linux/ioctl.h>
4#include <linux/types.h>
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02005
6#define DISPTYPE_CRT1 0x00000008L
7#define DISPTYPE_CRT2 0x00000004L
8#define DISPTYPE_LCD 0x00000002L
9#define DISPTYPE_TV 0x00000001L
10#define DISPTYPE_DISP1 DISPTYPE_CRT1
11#define DISPTYPE_DISP2 (DISPTYPE_CRT2 | DISPTYPE_LCD | DISPTYPE_TV)
12#define DISPMODE_SINGLE 0x00000020L
13#define DISPMODE_MIRROR 0x00000010L
14#define DISPMODE_DUALVIEW 0x00000040L
15
Kenji Toyamaa17379e2011-04-24 13:55:49 +080016#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_303 0x40
23#define HASVB_CHRONTEL 0x80
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020024
25#ifndef XGIFB_ID
Kenji Toyamaa17379e2011-04-24 13:55:49 +080026#define XGIFB_ID 0x53495346 /* Identify myself with 'XGIF' */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020027#endif
28
Bill Pemberton716083c2010-06-17 13:10:52 -040029enum XGI_CHIP_TYPE {
Kenji Toyamaa17379e2011-04-24 13:55:49 +080030 XG40 = 32,
31 XG41,
32 XG42,
33 XG45,
34 XG20 = 48,
35 XG21,
36 XG27,
Bill Pemberton716083c2010-06-17 13:10:52 -040037};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020038
Bill Pemberton716083c2010-06-17 13:10:52 -040039enum xgi_tvtype {
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020040 TVMODE_NTSC = 0,
41 TVMODE_PAL,
42 TVMODE_HIVISION,
Kenji Toyamaa17379e2011-04-24 13:55:49 +080043 TVTYPE_PALM, /* vicki@030226 */
44 TVTYPE_PALN, /* vicki@030226 */
45 TVTYPE_NTSCJ, /* vicki@030226 */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020046 TVMODE_TOTAL
Bill Pemberton716083c2010-06-17 13:10:52 -040047};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020048
Kenji Toyamaa17379e2011-04-24 13:55:49 +080049enum xgi_tv_plug { /* vicki@030226 */
50/* TVPLUG_Legacy = 0, */
51/* TVPLUG_COMPOSITE, */
52/* TVPLUG_SVIDEO, */
53/* TVPLUG_SCART, */
54/* TVPLUG_TOTAL */
55 TVPLUG_UNKNOWN = 0,
56 TVPLUG_COMPOSITE = 1,
57 TVPLUG_SVIDEO = 2,
58 TVPLUG_COMPOSITE_AND_SVIDEO = 3,
59 TVPLUG_SCART = 4,
60 TVPLUG_YPBPR_525i = 5,
61 TVPLUG_YPBPR_525P = 6,
62 TVPLUG_YPBPR_750P = 7,
63 TVPLUG_YPBPR_1080i = 8,
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020064 TVPLUG_TOTAL
Bill Pembertona3e735a2010-06-17 13:10:53 -040065};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020066
Kenji Toyamaa17379e2011-04-24 13:55:49 +080067struct video_info {
68 int chip_id;
69 unsigned int video_size;
70 unsigned long video_base;
71 char *video_vbase;
72 unsigned long mmio_base;
Aaro Koskinen1b3909e2011-02-17 23:29:17 +020073 unsigned long mmio_size;
Kenji Toyamaa17379e2011-04-24 13:55:49 +080074 char *mmio_vbase;
75 unsigned long vga_base;
76 unsigned long mtrr;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020077
Kenji Toyamaa17379e2011-04-24 13:55:49 +080078 int video_bpp;
79 int video_cmap_len;
80 int video_width;
81 int video_height;
82 int video_vwidth;
83 int video_vheight;
84 int org_x;
85 int org_y;
86 int video_linelength;
87 unsigned int refresh_rate;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020088
Kenji Toyamaa17379e2011-04-24 13:55:49 +080089 unsigned long disp_state;
90 unsigned char hasVB;
91 unsigned char TV_type;
92 unsigned char TV_plug;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020093
Bill Pemberton716083c2010-06-17 13:10:52 -040094 enum XGI_CHIP_TYPE chip;
Kenji Toyamaa17379e2011-04-24 13:55:49 +080095 unsigned char revision_id;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020096
Kenji Toyamaa17379e2011-04-24 13:55:49 +080097 unsigned short DstColor;
98 unsigned long XGI310_AccelDepth;
99 unsigned long CommandReg;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200100
Kenji Toyamaa17379e2011-04-24 13:55:49 +0800101 unsigned int pcibus;
102 unsigned int pcislot;
103 unsigned int pcifunc;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200104
Kenji Toyamaa17379e2011-04-24 13:55:49 +0800105 unsigned short subsysvendor;
106 unsigned short subsysdevice;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200107
Kenji Toyamaa17379e2011-04-24 13:55:49 +0800108 char reserved[236];
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200109};
110
111
112extern struct video_info xgi_video_info;
113
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200114#endif