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