blob: af50362395d5f3a3d7ebdacd57c6b564b62e8621 [file] [log] [blame]
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001#ifndef _LINUX_XGIFB
2#define _LINUX_XGIFB
Aaro Koskinenc62f2e42011-10-11 21:47:15 +03003#include "vgatypes.h"
Peter Hueweb33704d2012-01-15 19:22:11 +01004#include "vb_struct.h"
Aaro Koskinenc62f2e42011-10-11 21:47:15 +03005
Aaro Koskinen289ea522011-10-11 21:47:37 +03006enum xgifb_display_type {
7 XGIFB_DISP_NONE = 0,
8 XGIFB_DISP_CRT,
9 XGIFB_DISP_LCD,
10 XGIFB_DISP_TV,
11};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020012
Kenji Toyamaa17379e2011-04-24 13:55:49 +080013#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
Kenji Toyamaa17379e2011-04-24 13:55:49 +080019#define HASVB_CHRONTEL 0x80
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020020
Bill Pemberton716083c2010-06-17 13:10:52 -040021enum XGI_CHIP_TYPE {
Kenji Toyamaa17379e2011-04-24 13:55:49 +080022 XG40 = 32,
Kenji Toyamaa17379e2011-04-24 13:55:49 +080023 XG42,
Kenji Toyamaa17379e2011-04-24 13:55:49 +080024 XG20 = 48,
25 XG21,
26 XG27,
Bill Pemberton716083c2010-06-17 13:10:52 -040027};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020028
Bill Pemberton716083c2010-06-17 13:10:52 -040029enum xgi_tvtype {
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020030 TVMODE_NTSC = 0,
31 TVMODE_PAL,
32 TVMODE_HIVISION,
Miguel Gómez949eb0a2012-07-06 12:40:36 +020033 TVTYPE_PALM,
34 TVTYPE_PALN,
35 TVTYPE_NTSCJ,
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020036 TVMODE_TOTAL
Bill Pemberton716083c2010-06-17 13:10:52 -040037};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020038
Miguel Gómez949eb0a2012-07-06 12:40:36 +020039enum xgi_tv_plug {
Kenji Toyamaa17379e2011-04-24 13:55:49 +080040 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,
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020049 TVPLUG_TOTAL
Bill Pembertona3e735a2010-06-17 13:10:53 -040050};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020051
Aaro Koskinenab886ff2011-10-11 21:47:18 +030052struct xgifb_video_info {
Aaro Koskinen19c1e882011-10-11 21:47:14 +030053 struct fb_info *fb_info;
Aaro Koskinenc62f2e42011-10-11 21:47:15 +030054 struct xgi_hw_device_info hw_info;
Aaro Koskinenf2df8c02011-10-11 21:47:30 +030055 struct vb_device_info dev_info;
Aaro Koskinen19c1e882011-10-11 21:47:14 +030056
Aaro Koskinenccf265a2011-10-11 21:47:22 +030057 int mode_idx;
Aaro Koskinen5aa55d92011-10-11 21:47:23 +030058 int rate_idx;
Aaro Koskinenccf265a2011-10-11 21:47:22 +030059
Aaro Koskinen76cabaa2011-10-11 21:47:24 +030060 u32 pseudo_palette[17];
61
Kenji Toyamaa17379e2011-04-24 13:55:49 +080062 int chip_id;
63 unsigned int video_size;
Dmitry Eremin-Solenikovf650caa2012-03-19 21:50:14 +040064 phys_addr_t video_base;
Aaro Koskinenc44fa622011-09-13 22:49:33 +030065 void __iomem *video_vbase;
Dmitry Eremin-Solenikovf650caa2012-03-19 21:50:14 +040066 phys_addr_t mmio_base;
Aaro Koskinen1b3909e2011-02-17 23:29:17 +020067 unsigned long mmio_size;
Aaro Koskinen863c02a2011-09-13 22:49:31 +030068 void __iomem *mmio_vbase;
Kenji Toyamaa17379e2011-04-24 13:55:49 +080069 unsigned long vga_base;
Peter Huewe8cedcc72013-02-03 22:54:32 +010070 int mtrr;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020071
Kenji Toyamaa17379e2011-04-24 13:55:49 +080072 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;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020082
Aaro Koskinen289ea522011-10-11 21:47:37 +030083 enum xgifb_display_type display2; /* the second display output type */
Aaro Koskinen25aa75f2011-12-06 00:10:48 +020084 bool display2_force;
Kenji Toyamaa17379e2011-04-24 13:55:49 +080085 unsigned char hasVB;
86 unsigned char TV_type;
87 unsigned char TV_plug;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020088
Aaro Koskinenfab04b92011-12-06 00:10:45 +020089 struct XGI21_LVDSCapStruct lvds_data;
90
Bill Pemberton716083c2010-06-17 13:10:52 -040091 enum XGI_CHIP_TYPE chip;
Kenji Toyamaa17379e2011-04-24 13:55:49 +080092 unsigned char revision_id;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020093
Kenji Toyamaa17379e2011-04-24 13:55:49 +080094 unsigned short DstColor;
95 unsigned long XGI310_AccelDepth;
96 unsigned long CommandReg;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020097
Kenji Toyamaa17379e2011-04-24 13:55:49 +080098 unsigned int pcibus;
99 unsigned int pcislot;
100 unsigned int pcifunc;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200101
Kenji Toyamaa17379e2011-04-24 13:55:49 +0800102 unsigned short subsysvendor;
103 unsigned short subsysdevice;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200104
Kenji Toyamaa17379e2011-04-24 13:55:49 +0800105 char reserved[236];
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200106};
107
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200108#endif