blob: 7611846a70395f0884f513081e63c39e324a9abc [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
Aaro Koskinenf2df8c02011-10-11 21:47:30 +03006#include "vb_struct.h"
Aaro Koskinenc62f2e42011-10-11 21:47:15 +03007#include "vgatypes.h"
8
Aaro Koskinen289ea522011-10-11 21:47:37 +03009enum xgifb_display_type {
10 XGIFB_DISP_NONE = 0,
11 XGIFB_DISP_CRT,
12 XGIFB_DISP_LCD,
13 XGIFB_DISP_TV,
14};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020015
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
Kenji Toyamaa17379e2011-04-24 13:55:49 +080022#define HASVB_CHRONTEL 0x80
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020023
Bill Pemberton716083c2010-06-17 13:10:52 -040024enum XGI_CHIP_TYPE {
Kenji Toyamaa17379e2011-04-24 13:55:49 +080025 XG40 = 32,
26 XG41,
27 XG42,
28 XG45,
29 XG20 = 48,
30 XG21,
31 XG27,
Bill Pemberton716083c2010-06-17 13:10:52 -040032};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020033
Bill Pemberton716083c2010-06-17 13:10:52 -040034enum xgi_tvtype {
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020035 TVMODE_NTSC = 0,
36 TVMODE_PAL,
37 TVMODE_HIVISION,
Kenji Toyamaa17379e2011-04-24 13:55:49 +080038 TVTYPE_PALM, /* vicki@030226 */
39 TVTYPE_PALN, /* vicki@030226 */
40 TVTYPE_NTSCJ, /* vicki@030226 */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020041 TVMODE_TOTAL
Bill Pemberton716083c2010-06-17 13:10:52 -040042};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020043
Kenji Toyamaa17379e2011-04-24 13:55:49 +080044enum xgi_tv_plug { /* vicki@030226 */
Kenji Toyamaa17379e2011-04-24 13:55:49 +080045 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,
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020054 TVPLUG_TOTAL
Bill Pembertona3e735a2010-06-17 13:10:53 -040055};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020056
Aaro Koskinenab886ff2011-10-11 21:47:18 +030057struct xgifb_video_info {
Aaro Koskinen19c1e882011-10-11 21:47:14 +030058 struct fb_info *fb_info;
Aaro Koskinenc62f2e42011-10-11 21:47:15 +030059 struct xgi_hw_device_info hw_info;
Aaro Koskinenf2df8c02011-10-11 21:47:30 +030060 struct vb_device_info dev_info;
Aaro Koskinen19c1e882011-10-11 21:47:14 +030061
Aaro Koskinenccf265a2011-10-11 21:47:22 +030062 int mode_idx;
Aaro Koskinen5aa55d92011-10-11 21:47:23 +030063 int rate_idx;
Aaro Koskinenccf265a2011-10-11 21:47:22 +030064
Aaro Koskinen76cabaa2011-10-11 21:47:24 +030065 u32 pseudo_palette[17];
66
Kenji Toyamaa17379e2011-04-24 13:55:49 +080067 int chip_id;
68 unsigned int video_size;
69 unsigned long video_base;
Aaro Koskinenc44fa622011-09-13 22:49:33 +030070 void __iomem *video_vbase;
Kenji Toyamaa17379e2011-04-24 13:55:49 +080071 unsigned long mmio_base;
Aaro Koskinen1b3909e2011-02-17 23:29:17 +020072 unsigned long mmio_size;
Aaro Koskinen863c02a2011-09-13 22:49:31 +030073 void __iomem *mmio_vbase;
Kenji Toyamaa17379e2011-04-24 13:55:49 +080074 unsigned long vga_base;
75 unsigned long mtrr;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020076
Kenji Toyamaa17379e2011-04-24 13:55:49 +080077 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;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020087
Aaro Koskinen289ea522011-10-11 21:47:37 +030088 enum xgifb_display_type display2; /* the second display output type */
Kenji Toyamaa17379e2011-04-24 13:55:49 +080089 unsigned char hasVB;
90 unsigned char TV_type;
91 unsigned char TV_plug;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020092
Bill Pemberton716083c2010-06-17 13:10:52 -040093 enum XGI_CHIP_TYPE chip;
Kenji Toyamaa17379e2011-04-24 13:55:49 +080094 unsigned char revision_id;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020095
Kenji Toyamaa17379e2011-04-24 13:55:49 +080096 unsigned short DstColor;
97 unsigned long XGI310_AccelDepth;
98 unsigned long CommandReg;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020099
Kenji Toyamaa17379e2011-04-24 13:55:49 +0800100 unsigned int pcibus;
101 unsigned int pcislot;
102 unsigned int pcifunc;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200103
Kenji Toyamaa17379e2011-04-24 13:55:49 +0800104 unsigned short subsysvendor;
105 unsigned short subsysdevice;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200106
Kenji Toyamaa17379e2011-04-24 13:55:49 +0800107 char reserved[236];
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200108};
109
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200110#endif