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