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
110