1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 
  18 
  19 
  20 
  21 
  22 
  23 
  24 
  25 
  26 
  27 
  28 
  29 
  30 
  31 
  32 
  33 
  34 
  35 
  36 
  37 
  38 
  39 
  40 
  41 
  42 
  43 
  44 
  45 
  46 
  47 
  48 
  49 
  50 
  51 
  52 
  53 
  54 #ifndef _SISUSB_INIT_H_
  55 #define _SISUSB_INIT_H_
  56 
  57 
  58 #define ModeText                0x00
  59 #define ModeCGA                 0x01
  60 #define ModeEGA                 0x02
  61 #define ModeVGA                 0x03
  62 #define Mode15Bpp               0x04
  63 #define Mode16Bpp               0x05
  64 #define Mode24Bpp               0x06
  65 #define Mode32Bpp               0x07
  66 
  67 #define ModeTypeMask            0x07
  68 #define IsTextMode              0x07
  69 
  70 #define DACInfoFlag             0x0018
  71 #define MemoryInfoFlag          0x01E0
  72 #define MemorySizeShift         5
  73 
  74 
  75 #define Charx8Dot               0x0200
  76 #define LineCompareOff          0x0400
  77 #define CRT2Mode                0x0800
  78 #define HalfDCLK                0x1000
  79 #define NoSupportSimuTV         0x2000
  80 #define NoSupportLCDScale       0x4000  
  81 #define DoubleScanMode          0x8000
  82 
  83 
  84 #define SupportTV               0x0008
  85 #define SupportTV1024           0x0800
  86 #define SupportCHTV             0x0800
  87 #define Support64048060Hz       0x0800  
  88 #define SupportHiVision         0x0010
  89 #define SupportYPbPr750p        0x1000
  90 #define SupportLCD              0x0020
  91 #define SupportRAMDAC2          0x0040  
  92 #define SupportRAMDAC2_135      0x0100  
  93 #define SupportRAMDAC2_162      0x0200  
  94 #define SupportRAMDAC2_202      0x0400  
  95 #define InterlaceMode           0x0080
  96 #define SyncPP                  0x0000
  97 #define SyncPN                  0x4000
  98 #define SyncNP                  0x8000
  99 #define SyncNN                  0xc000
 100 
 101 
 102 #define ProgrammingCRT2         0x0001
 103 #define LowModeTests            0x0002
 104 #define LCDVESATiming           0x0008
 105 #define EnableLVDSDDA           0x0010
 106 #define SetDispDevSwitchFlag    0x0020
 107 #define CheckWinDos             0x0040
 108 #define SetDOSMode              0x0080
 109 
 110 
 111 #define SIS_RI_320x200          0
 112 #define SIS_RI_320x240          1
 113 #define SIS_RI_320x400          2
 114 #define SIS_RI_400x300          3
 115 #define SIS_RI_512x384          4
 116 #define SIS_RI_640x400          5
 117 #define SIS_RI_640x480          6
 118 #define SIS_RI_800x600          7
 119 #define SIS_RI_1024x768         8
 120 #define SIS_RI_1280x1024        9
 121 #define SIS_RI_1600x1200        10
 122 #define SIS_RI_1920x1440        11
 123 #define SIS_RI_2048x1536        12
 124 #define SIS_RI_720x480          13
 125 #define SIS_RI_720x576          14
 126 #define SIS_RI_1280x960         15
 127 #define SIS_RI_800x480          16
 128 #define SIS_RI_1024x576         17
 129 #define SIS_RI_1280x720         18
 130 #define SIS_RI_856x480          19
 131 #define SIS_RI_1280x768         20
 132 #define SIS_RI_1400x1050        21
 133 #define SIS_RI_1152x864         22      
 134 #define SIS_RI_848x480          23
 135 #define SIS_RI_1360x768         24
 136 #define SIS_RI_1024x600         25
 137 #define SIS_RI_1152x768         26
 138 #define SIS_RI_768x576          27
 139 #define SIS_RI_1360x1024        28
 140 #define SIS_RI_1680x1050        29
 141 #define SIS_RI_1280x800         30
 142 #define SIS_RI_1920x1080        31
 143 #define SIS_RI_960x540          32
 144 #define SIS_RI_960x600          33
 145 
 146 #define SIS_VIDEO_CAPTURE       0x00 - 0x30
 147 #define SIS_VIDEO_PLAYBACK      0x02 - 0x30
 148 #define SIS_CRT2_PORT_04        0x04 - 0x30
 149 
 150 
 151 static const unsigned short ModeIndex_320x200[] = { 0x59, 0x41, 0x00, 0x4f };
 152 static const unsigned short ModeIndex_320x240[] = { 0x50, 0x56, 0x00, 0x53 };
 153 static const unsigned short ModeIndex_400x300[] = { 0x51, 0x57, 0x00, 0x54 };
 154 static const unsigned short ModeIndex_512x384[] = { 0x52, 0x58, 0x00, 0x5c };
 155 static const unsigned short ModeIndex_640x400[] = { 0x2f, 0x5d, 0x00, 0x5e };
 156 static const unsigned short ModeIndex_640x480[] = { 0x2e, 0x44, 0x00, 0x62 };
 157 static const unsigned short ModeIndex_720x480[] = { 0x31, 0x33, 0x00, 0x35 };
 158 static const unsigned short ModeIndex_720x576[] = { 0x32, 0x34, 0x00, 0x36 };
 159 static const unsigned short ModeIndex_768x576[] = { 0x5f, 0x60, 0x00, 0x61 };
 160 static const unsigned short ModeIndex_800x480[] = { 0x70, 0x7a, 0x00, 0x76 };
 161 static const unsigned short ModeIndex_800x600[] = { 0x30, 0x47, 0x00, 0x63 };
 162 static const unsigned short ModeIndex_848x480[] = { 0x39, 0x3b, 0x00, 0x3e };
 163 static const unsigned short ModeIndex_856x480[] = { 0x3f, 0x42, 0x00, 0x45 };
 164 static const unsigned short ModeIndex_960x540[] = { 0x1d, 0x1e, 0x00, 0x1f };
 165 static const unsigned short ModeIndex_960x600[] = { 0x20, 0x21, 0x00, 0x22 };
 166 static const unsigned short ModeIndex_1024x768[] = { 0x38, 0x4a, 0x00, 0x64 };
 167 static const unsigned short ModeIndex_1024x576[] = { 0x71, 0x74, 0x00, 0x77 };
 168 static const unsigned short ModeIndex_1152x864[] = { 0x29, 0x2a, 0x00, 0x2b };
 169 static const unsigned short ModeIndex_1280x720[] = { 0x79, 0x75, 0x00, 0x78 };
 170 static const unsigned short ModeIndex_1280x768[] = { 0x23, 0x24, 0x00, 0x25 };
 171 static const unsigned short ModeIndex_1280x1024[] = { 0x3a, 0x4d, 0x00, 0x65 };
 172 
 173 static const unsigned char SiS_MDA_DAC[] = {
 174         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 175         0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
 176         0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
 177         0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
 178         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 179         0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
 180         0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
 181         0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F
 182 };
 183 
 184 static const unsigned char SiS_CGA_DAC[] = {
 185         0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
 186         0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
 187         0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
 188         0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
 189         0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
 190         0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
 191         0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
 192         0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F
 193 };
 194 
 195 static const unsigned char SiS_EGA_DAC[] = {
 196         0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x05, 0x15,
 197         0x20, 0x30, 0x24, 0x34, 0x21, 0x31, 0x25, 0x35,
 198         0x08, 0x18, 0x0C, 0x1C, 0x09, 0x19, 0x0D, 0x1D,
 199         0x28, 0x38, 0x2C, 0x3C, 0x29, 0x39, 0x2D, 0x3D,
 200         0x02, 0x12, 0x06, 0x16, 0x03, 0x13, 0x07, 0x17,
 201         0x22, 0x32, 0x26, 0x36, 0x23, 0x33, 0x27, 0x37,
 202         0x0A, 0x1A, 0x0E, 0x1E, 0x0B, 0x1B, 0x0F, 0x1F,
 203         0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F
 204 };
 205 
 206 static const unsigned char SiS_VGA_DAC[] = {
 207         0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
 208         0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
 209         0x00, 0x05, 0x08, 0x0B, 0x0E, 0x11, 0x14, 0x18,
 210         0x1C, 0x20, 0x24, 0x28, 0x2D, 0x32, 0x38, 0x3F,
 211         0x00, 0x10, 0x1F, 0x2F, 0x3F, 0x1F, 0x27, 0x2F,
 212         0x37, 0x3F, 0x2D, 0x31, 0x36, 0x3A, 0x3F, 0x00,
 213         0x07, 0x0E, 0x15, 0x1C, 0x0E, 0x11, 0x15, 0x18,
 214         0x1C, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x00, 0x04,
 215         0x08, 0x0C, 0x10, 0x08, 0x0A, 0x0C, 0x0E, 0x10,
 216         0x0B, 0x0C, 0x0D, 0x0F, 0x10
 217 };
 218 
 219 static const struct SiS_St SiSUSB_SModeIDTable[] = {
 220         {0x03, 0x0010, 0x18, 0x02, 0x02, 0x00, 0x01, 0x03, 0x40},
 221         {0xff, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
 222 };
 223 
 224 static const struct SiS_StResInfo_S SiSUSB_StResInfo[] = {
 225         {640, 400},
 226         {640, 350},
 227         {720, 400},
 228         {720, 350},
 229         {640, 480}
 230 };
 231 
 232 static const struct SiS_ModeResInfo SiSUSB_ModeResInfo[] = {
 233         {320, 200, 8, 8},       
 234         {320, 240, 8, 8},       
 235         {320, 400, 8, 8},       
 236         {400, 300, 8, 8},       
 237         {512, 384, 8, 8},       
 238         {640, 400, 8, 16},      
 239         {640, 480, 8, 16},      
 240         {800, 600, 8, 16},      
 241         {1024, 768, 8, 16},     
 242         {1280, 1024, 8, 16},    
 243         {1600, 1200, 8, 16},    
 244         {1920, 1440, 8, 16},    
 245         {2048, 1536, 8, 16},    
 246         {720, 480, 8, 16},      
 247         {720, 576, 8, 16},      
 248         {1280, 960, 8, 16},     
 249         {800, 480, 8, 16},      
 250         {1024, 576, 8, 16},     
 251         {1280, 720, 8, 16},     
 252         {856, 480, 8, 16},      
 253         {1280, 768, 8, 16},     
 254         {1400, 1050, 8, 16},    
 255         {1152, 864, 8, 16},     
 256         {848, 480, 8, 16},      
 257         {1360, 768, 8, 16},     
 258         {1024, 600, 8, 16},     
 259         {1152, 768, 8, 16},     
 260         {768, 576, 8, 16},      
 261         {1360, 1024, 8, 16},    
 262         {1680, 1050, 8, 16},    
 263         {1280, 800, 8, 16},     
 264         {1920, 1080, 8, 16},    
 265         {960, 540, 8, 16},      
 266         {960, 600, 8, 16}       
 267 };
 268 
 269 static const struct SiS_StandTable SiSUSB_StandTable[] = {
 270         
 271         {
 272          0x50, 0x18, 0x10, 0x1000,
 273          {0x00, 0x03, 0x00, 0x02},
 274          0x67,
 275          {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
 276           0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
 277           0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
 278           0xff},
 279          {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
 280           0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
 281           0x0c, 0x00, 0x0f, 0x08},
 282          {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00, 0xff}
 283          },
 284         
 285         {
 286          0x00, 0x00, 0x00, 0x0000,
 287          {0x01, 0x0f, 0x00, 0x0e},
 288          0x23,
 289          {0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e,
 290           0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 291           0xea, 0x8c, 0xdf, 0x28, 0x40, 0xe7, 0x04, 0xa3,
 292           0xff},
 293          {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
 294           0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
 295           0x01, 0x00, 0x00, 0x00},
 296          {0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f, 0xff}
 297          }
 298 };
 299 
 300 static const struct SiS_Ext SiSUSB_EModeIDTable[] = {
 301         {0x2e, 0x0a1b, 0x0101, SIS_RI_640x480, 0x00, 0x00, 0x05, 0x05, 0x08, 2},        
 302         {0x2f, 0x0a1b, 0x0100, SIS_RI_640x400, 0x00, 0x00, 0x05, 0x05, 0x10, 0},        
 303         {0x30, 0x2a1b, 0x0103, SIS_RI_800x600, 0x00, 0x00, 0x07, 0x06, 0x00, 3},        
 304         {0x31, 0x4a1b, 0x0000, SIS_RI_720x480, 0x00, 0x00, 0x06, 0x06, 0x11, -1},       
 305         {0x32, 0x4a1b, 0x0000, SIS_RI_720x576, 0x00, 0x00, 0x06, 0x06, 0x12, -1},       
 306         {0x33, 0x4a1d, 0x0000, SIS_RI_720x480, 0x00, 0x00, 0x06, 0x06, 0x11, -1},       
 307         {0x34, 0x6a1d, 0x0000, SIS_RI_720x576, 0x00, 0x00, 0x06, 0x06, 0x12, -1},       
 308         {0x35, 0x4a1f, 0x0000, SIS_RI_720x480, 0x00, 0x00, 0x06, 0x06, 0x11, -1},       
 309         {0x36, 0x6a1f, 0x0000, SIS_RI_720x576, 0x00, 0x00, 0x06, 0x06, 0x12, -1},       
 310         {0x38, 0x0a1b, 0x0105, SIS_RI_1024x768, 0x00, 0x00, 0x08, 0x07, 0x13, 4},       
 311         {0x3a, 0x0e3b, 0x0107, SIS_RI_1280x1024, 0x00, 0x00, 0x00, 0x00, 0x2f, 8},      
 312         {0x41, 0x9a1d, 0x010e, SIS_RI_320x200, 0x00, 0x00, 0x04, 0x04, 0x1a, 0},        
 313         {0x44, 0x0a1d, 0x0111, SIS_RI_640x480, 0x00, 0x00, 0x05, 0x05, 0x08, 2},        
 314         {0x47, 0x2a1d, 0x0114, SIS_RI_800x600, 0x00, 0x00, 0x07, 0x06, 0x00, 3},        
 315         {0x4a, 0x0a3d, 0x0117, SIS_RI_1024x768, 0x00, 0x00, 0x08, 0x07, 0x13, 4},       
 316         {0x4d, 0x0e7d, 0x011a, SIS_RI_1280x1024, 0x00, 0x00, 0x00, 0x00, 0x2f, 8},      
 317         {0x50, 0x9a1b, 0x0132, SIS_RI_320x240, 0x00, 0x00, 0x04, 0x04, 0x1b, 2},        
 318         {0x51, 0xba1b, 0x0133, SIS_RI_400x300, 0x00, 0x00, 0x07, 0x07, 0x1c, 3},        
 319         {0x52, 0xba1b, 0x0134, SIS_RI_512x384, 0x00, 0x00, 0x00, 0x00, 0x1d, 4},        
 320         {0x56, 0x9a1d, 0x0135, SIS_RI_320x240, 0x00, 0x00, 0x04, 0x04, 0x1b, 2},        
 321         {0x57, 0xba1d, 0x0136, SIS_RI_400x300, 0x00, 0x00, 0x07, 0x07, 0x1c, 3},        
 322         {0x58, 0xba1d, 0x0137, SIS_RI_512x384, 0x00, 0x00, 0x00, 0x00, 0x1d, 4},        
 323         {0x59, 0x9a1b, 0x0138, SIS_RI_320x200, 0x00, 0x00, 0x04, 0x04, 0x1a, 0},        
 324         {0x5c, 0xba1f, 0x0000, SIS_RI_512x384, 0x00, 0x00, 0x00, 0x00, 0x1d, 4},        
 325         {0x5d, 0x0a1d, 0x0139, SIS_RI_640x400, 0x00, 0x00, 0x05, 0x07, 0x10, 0},        
 326         {0x5e, 0x0a1f, 0x0000, SIS_RI_640x400, 0x00, 0x00, 0x05, 0x07, 0x10, 0},        
 327         {0x62, 0x0a3f, 0x013a, SIS_RI_640x480, 0x00, 0x00, 0x05, 0x05, 0x08, 2},        
 328         {0x63, 0x2a3f, 0x013b, SIS_RI_800x600, 0x00, 0x00, 0x07, 0x06, 0x00, 3},        
 329         {0x64, 0x0a7f, 0x013c, SIS_RI_1024x768, 0x00, 0x00, 0x08, 0x07, 0x13, 4},       
 330         {0x65, 0x0eff, 0x013d, SIS_RI_1280x1024, 0x00, 0x00, 0x00, 0x00, 0x2f, 8},      
 331         {0x70, 0x6a1b, 0x0000, SIS_RI_800x480, 0x00, 0x00, 0x07, 0x07, 0x1e, -1},       
 332         {0x71, 0x4a1b, 0x0000, SIS_RI_1024x576, 0x00, 0x00, 0x00, 0x00, 0x21, -1},      
 333         {0x74, 0x4a1d, 0x0000, SIS_RI_1024x576, 0x00, 0x00, 0x00, 0x00, 0x21, -1},      
 334         {0x75, 0x0a3d, 0x0000, SIS_RI_1280x720, 0x00, 0x00, 0x00, 0x00, 0x24, 5},       
 335         {0x76, 0x6a1f, 0x0000, SIS_RI_800x480, 0x00, 0x00, 0x07, 0x07, 0x1e, -1},       
 336         {0x77, 0x4a1f, 0x0000, SIS_RI_1024x576, 0x00, 0x00, 0x00, 0x00, 0x21, -1},      
 337         {0x78, 0x0a3f, 0x0000, SIS_RI_1280x720, 0x00, 0x00, 0x00, 0x00, 0x24, 5},       
 338         {0x79, 0x0a3b, 0x0000, SIS_RI_1280x720, 0x00, 0x00, 0x00, 0x00, 0x24, 5},       
 339         {0x7a, 0x6a1d, 0x0000, SIS_RI_800x480, 0x00, 0x00, 0x07, 0x07, 0x1e, -1},       
 340         {0x23, 0x0e3b, 0x0000, SIS_RI_1280x768, 0x00, 0x00, 0x00, 0x00, 0x27, 6},       
 341         {0x24, 0x0e7d, 0x0000, SIS_RI_1280x768, 0x00, 0x00, 0x00, 0x00, 0x27, 6},       
 342         {0x25, 0x0eff, 0x0000, SIS_RI_1280x768, 0x00, 0x00, 0x00, 0x00, 0x27, 6},       
 343         {0x39, 0x6a1b, 0x0000, SIS_RI_848x480, 0x00, 0x00, 0x00, 0x00, 0x28, -1},       
 344         {0x3b, 0x6a3d, 0x0000, SIS_RI_848x480, 0x00, 0x00, 0x00, 0x00, 0x28,
 345          -1},
 346         {0x3e, 0x6a7f, 0x0000, SIS_RI_848x480, 0x00, 0x00, 0x00, 0x00, 0x28,
 347          -1},
 348         {0x3f, 0x6a1b, 0x0000, SIS_RI_856x480, 0x00, 0x00, 0x00, 0x00, 0x2a, -1},       
 349         {0x42, 0x6a3d, 0x0000, SIS_RI_856x480, 0x00, 0x00, 0x00, 0x00, 0x2a,
 350          -1},
 351         {0x45, 0x6a7f, 0x0000, SIS_RI_856x480, 0x00, 0x00, 0x00, 0x00, 0x2a,
 352          -1},
 353         {0x4f, 0x9a1f, 0x0000, SIS_RI_320x200, 0x00, 0x00, 0x04, 0x04, 0x1a, 0},        
 354         {0x53, 0x9a1f, 0x0000, SIS_RI_320x240, 0x00, 0x00, 0x04, 0x04, 0x1b, 2},        
 355         {0x54, 0xba1f, 0x0000, SIS_RI_400x300, 0x00, 0x00, 0x07, 0x07, 0x1c, 3},        
 356         {0x5f, 0x6a1b, 0x0000, SIS_RI_768x576, 0x00, 0x00, 0x06, 0x06, 0x2c, -1},       
 357         {0x60, 0x6a1d, 0x0000, SIS_RI_768x576, 0x00, 0x00, 0x06, 0x06, 0x2c,
 358          -1},
 359         {0x61, 0x6a3f, 0x0000, SIS_RI_768x576, 0x00, 0x00, 0x06, 0x06, 0x2c,
 360          -1},
 361         {0x1d, 0x6a1b, 0x0000, SIS_RI_960x540, 0x00, 0x00, 0x00, 0x00, 0x2d, -1},       
 362         {0x1e, 0x6a3d, 0x0000, SIS_RI_960x540, 0x00, 0x00, 0x00, 0x00, 0x2d,
 363          -1},
 364         {0x1f, 0x6a7f, 0x0000, SIS_RI_960x540, 0x00, 0x00, 0x00, 0x00, 0x2d,
 365          -1},
 366         {0x20, 0x6a1b, 0x0000, SIS_RI_960x600, 0x00, 0x00, 0x00, 0x00, 0x2e, -1},       
 367         {0x21, 0x6a3d, 0x0000, SIS_RI_960x600, 0x00, 0x00, 0x00, 0x00, 0x2e,
 368          -1},
 369         {0x22, 0x6a7f, 0x0000, SIS_RI_960x600, 0x00, 0x00, 0x00, 0x00, 0x2e,
 370          -1},
 371         {0x29, 0x4e1b, 0x0000, SIS_RI_1152x864, 0x00, 0x00, 0x00, 0x00, 0x33, -1},      
 372         {0x2a, 0x4e3d, 0x0000, SIS_RI_1152x864, 0x00, 0x00, 0x00, 0x00, 0x33,
 373          -1},
 374         {0x2b, 0x4e7f, 0x0000, SIS_RI_1152x864, 0x00, 0x00, 0x00, 0x00, 0x33,
 375          -1},
 376         {0xff, 0x0000, 0x0000, 0, 0x00, 0x00, 0x00, 0x00, 0x00, -1}
 377 };
 378 
 379 static const struct SiS_Ext2 SiSUSB_RefIndex[] = {
 380         {0x085f, 0x0d, 0x03, 0x05, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},     
 381         {0x0067, 0x0e, 0x04, 0x05, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},     
 382         {0x0067, 0x0f, 0x08, 0x48, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},     
 383         {0x0067, 0x10, 0x07, 0x8b, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},     
 384         {0x0047, 0x11, 0x0a, 0x00, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},     
 385         {0x0047, 0x12, 0x0d, 0x00, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},     
 386         {0x0047, 0x13, 0x13, 0x00, 0x05, 0x30, 800, 600, 0x20, 0x00, 0x00},     
 387         {0x0107, 0x14, 0x1c, 0x00, 0x05, 0x30, 800, 600, 0x20, 0x00, 0x00},     
 388         {0xc85f, 0x05, 0x00, 0x04, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},     
 389         {0xc067, 0x06, 0x02, 0x04, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},     
 390         {0xc067, 0x07, 0x02, 0x47, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},     
 391         {0xc067, 0x08, 0x03, 0x8a, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},     
 392         {0xc047, 0x09, 0x05, 0x00, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},     
 393         {0xc047, 0x0a, 0x09, 0x00, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},     
 394         {0xc047, 0x0b, 0x0e, 0x00, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},     
 395         {0xc047, 0x0c, 0x15, 0x00, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},     
 396         {0x487f, 0x04, 0x00, 0x00, 0x00, 0x2f, 640, 400, 0x30, 0x55, 0x6e},     
 397         {0xc06f, 0x3c, 0x01, 0x06, 0x13, 0x31, 720, 480, 0x30, 0x00, 0x00},     
 398         {0x006f, 0x3d, 0x6f, 0x06, 0x14, 0x32, 720, 576, 0x30, 0x00, 0x00},     
 399         {0x0087, 0x15, 0x06, 0x00, 0x06, 0x38, 1024, 768, 0x30, 0x00, 0x00},    
 400         {0xc877, 0x16, 0x0b, 0x06, 0x06, 0x38, 1024, 768, 0x20, 0x00, 0x00},    
 401         {0xc067, 0x17, 0x0f, 0x49, 0x06, 0x38, 1024, 768, 0x20, 0x00, 0x00},    
 402         {0x0067, 0x18, 0x11, 0x00, 0x06, 0x38, 1024, 768, 0x20, 0x00, 0x00},    
 403         {0x0047, 0x19, 0x16, 0x8c, 0x06, 0x38, 1024, 768, 0x20, 0x00, 0x00},    
 404         {0x0107, 0x1a, 0x1b, 0x00, 0x06, 0x38, 1024, 768, 0x10, 0x00, 0x00},    
 405         {0x0107, 0x1b, 0x1f, 0x00, 0x06, 0x38, 1024, 768, 0x10, 0x00, 0x00},    
 406         {0x407f, 0x00, 0x00, 0x00, 0x00, 0x41, 320, 200, 0x30, 0x56, 0x4e},     
 407         {0xc07f, 0x01, 0x00, 0x04, 0x04, 0x50, 320, 240, 0x30, 0x00, 0x00},     
 408         {0x007f, 0x02, 0x04, 0x05, 0x05, 0x51, 400, 300, 0x30, 0x00, 0x00},     
 409         {0xc077, 0x03, 0x0b, 0x06, 0x06, 0x52, 512, 384, 0x30, 0x00, 0x00},     
 410         {0x0077, 0x32, 0x40, 0x08, 0x18, 0x70, 800, 480, 0x30, 0x00, 0x00},     
 411         {0x0047, 0x33, 0x07, 0x08, 0x18, 0x70, 800, 480, 0x30, 0x00, 0x00},     
 412         {0x0047, 0x34, 0x0a, 0x08, 0x18, 0x70, 800, 480, 0x30, 0x00, 0x00},     
 413         {0x0077, 0x35, 0x0b, 0x09, 0x19, 0x71, 1024, 576, 0x30, 0x00, 0x00},    
 414         {0x0047, 0x36, 0x11, 0x09, 0x19, 0x71, 1024, 576, 0x30, 0x00, 0x00},    
 415         {0x0047, 0x37, 0x16, 0x09, 0x19, 0x71, 1024, 576, 0x30, 0x00, 0x00},    
 416         {0x1137, 0x38, 0x19, 0x0a, 0x0c, 0x75, 1280, 720, 0x30, 0x00, 0x00},    
 417         {0x1107, 0x39, 0x1e, 0x0a, 0x0c, 0x75, 1280, 720, 0x30, 0x00, 0x00},    
 418         {0x1307, 0x3a, 0x20, 0x0a, 0x0c, 0x75, 1280, 720, 0x30, 0x00, 0x00},    
 419         {0x0077, 0x42, 0x5b, 0x08, 0x11, 0x23, 1280, 768, 0x30, 0x00, 0x00},    
 420         {0x0087, 0x45, 0x57, 0x00, 0x16, 0x39, 848, 480, 0x30, 0x00, 0x00},     
 421         {0xc067, 0x46, 0x55, 0x0b, 0x16, 0x39, 848, 480, 0x30, 0x00, 0x00},     
 422         {0x0087, 0x47, 0x57, 0x00, 0x17, 0x3f, 856, 480, 0x30, 0x00, 0x00},     
 423         {0xc067, 0x48, 0x57, 0x00, 0x17, 0x3f, 856, 480, 0x30, 0x00, 0x00},     
 424         {0x006f, 0x4d, 0x71, 0x06, 0x15, 0x5f, 768, 576, 0x30, 0x00, 0x00},     
 425         {0x0067, 0x52, 0x6a, 0x00, 0x1c, 0x1d, 960, 540, 0x30, 0x00, 0x00},     
 426         {0x0077, 0x53, 0x6b, 0x0b, 0x1d, 0x20, 960, 600, 0x30, 0x00, 0x00},     
 427         {0x0087, 0x1c, 0x11, 0x00, 0x07, 0x3a, 1280, 1024, 0x30, 0x00, 0x00},   
 428         {0x0137, 0x1d, 0x19, 0x07, 0x07, 0x3a, 1280, 1024, 0x00, 0x00, 0x00},   
 429         {0x0107, 0x1e, 0x1e, 0x00, 0x07, 0x3a, 1280, 1024, 0x00, 0x00, 0x00},   
 430         {0x0207, 0x1f, 0x20, 0x00, 0x07, 0x3a, 1280, 1024, 0x00, 0x00, 0x00},   
 431         {0x0127, 0x54, 0x6d, 0x00, 0x1a, 0x29, 1152, 864, 0x30, 0x00, 0x00},    
 432         {0x0127, 0x44, 0x19, 0x00, 0x1a, 0x29, 1152, 864, 0x30, 0x00, 0x00},    
 433         {0x0127, 0x4a, 0x1e, 0x00, 0x1a, 0x29, 1152, 864, 0x30, 0x00, 0x00},    
 434         {0xffff, 0x00, 0x00, 0x00, 0x00, 0x00, 0, 0, 0, 0x00, 0x00}
 435 };
 436 
 437 static const struct SiS_CRT1Table SiSUSB_CRT1Table[] = {
 438         {{0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0xbf, 0x1f,
 439           0x9c, 0x8e, 0x8f, 0x96, 0xb9, 0x30, 0x00, 0x00,
 440           0x00}},               
 441         {{0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0x0b, 0x3e,
 442           0xe9, 0x8b, 0xdf, 0xe7, 0x04, 0x00, 0x00, 0x00,
 443           0x00}},               
 444         {{0x3d, 0x31, 0x31, 0x81, 0x37, 0x1f, 0x72, 0xf0,
 445           0x58, 0x8c, 0x57, 0x57, 0x73, 0x20, 0x00, 0x05,
 446           0x01}},               
 447         {{0x4f, 0x3f, 0x3f, 0x93, 0x45, 0x0d, 0x24, 0xf5,
 448           0x02, 0x88, 0xff, 0xff, 0x25, 0x10, 0x00, 0x01,
 449           0x01}},               
 450         {{0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
 451           0x9c, 0x8e, 0x8f, 0x96, 0xb9, 0x30, 0x00, 0x05,
 452           0x00}},               
 453         {{0x5f, 0x4f, 0x4f, 0x83, 0x55, 0x81, 0x0b, 0x3e,
 454           0xe9, 0x8b, 0xdf, 0xe8, 0x0c, 0x00, 0x00, 0x05,
 455           0x00}},               
 456         {{0x63, 0x4f, 0x4f, 0x87, 0x56, 0x9b, 0x06, 0x3e,
 457           0xe8, 0x8a, 0xdf, 0xe7, 0x07, 0x00, 0x00, 0x01,
 458           0x00}},               
 459         {{0x64, 0x4f, 0x4f, 0x88, 0x55, 0x9d, 0xf2, 0x1f,
 460           0xe0, 0x83, 0xdf, 0xdf, 0xf3, 0x10, 0x00, 0x01,
 461           0x00}},               
 462         {{0x63, 0x4f, 0x4f, 0x87, 0x5a, 0x81, 0xfb, 0x1f,
 463           0xe0, 0x83, 0xdf, 0xdf, 0xfc, 0x10, 0x00, 0x05,
 464           0x00}},               
 465         {{0x65, 0x4f, 0x4f, 0x89, 0x58, 0x80, 0xfb, 0x1f,
 466           0xe0, 0x83, 0xdf, 0xdf, 0xfc, 0x10, 0x00, 0x05,
 467           0x61}},               
 468         {{0x65, 0x4f, 0x4f, 0x89, 0x58, 0x80, 0x01, 0x3e,
 469           0xe0, 0x83, 0xdf, 0xdf, 0x02, 0x00, 0x00, 0x05,
 470           0x61}},               
 471         {{0x67, 0x4f, 0x4f, 0x8b, 0x58, 0x81, 0x0d, 0x3e,
 472           0xe0, 0x83, 0xdf, 0xdf, 0x0e, 0x00, 0x00, 0x05,
 473           0x61}},               
 474         {{0x65, 0x4f, 0x4f, 0x89, 0x57, 0x9f, 0xfb, 0x1f,
 475           0xe6, 0x8a, 0xdf, 0xdf, 0xfc, 0x10, 0x00, 0x01,
 476           0x00}},               
 477         {{0x7b, 0x63, 0x63, 0x9f, 0x6a, 0x93, 0x6f, 0xf0,
 478           0x58, 0x8a, 0x57, 0x57, 0x70, 0x20, 0x00, 0x05,
 479           0x01}},               
 480         {{0x7f, 0x63, 0x63, 0x83, 0x6c, 0x1c, 0x72, 0xf0,
 481           0x58, 0x8c, 0x57, 0x57, 0x73, 0x20, 0x00, 0x06,
 482           0x01}},               
 483         {{0x7d, 0x63, 0x63, 0x81, 0x6e, 0x1d, 0x98, 0xf0,
 484           0x7c, 0x82, 0x57, 0x57, 0x99, 0x00, 0x00, 0x06,
 485           0x01}},               
 486         {{0x7f, 0x63, 0x63, 0x83, 0x69, 0x13, 0x6f, 0xf0,
 487           0x58, 0x8b, 0x57, 0x57, 0x70, 0x20, 0x00, 0x06,
 488           0x01}},               
 489         {{0x7e, 0x63, 0x63, 0x82, 0x6b, 0x13, 0x75, 0xf0,
 490           0x58, 0x8b, 0x57, 0x57, 0x76, 0x20, 0x00, 0x06,
 491           0x01}},               
 492         {{0x81, 0x63, 0x63, 0x85, 0x6d, 0x18, 0x7a, 0xf0,
 493           0x58, 0x8b, 0x57, 0x57, 0x7b, 0x20, 0x00, 0x06,
 494           0x61}},               
 495         {{0x83, 0x63, 0x63, 0x87, 0x6e, 0x19, 0x81, 0xf0,
 496           0x58, 0x8b, 0x57, 0x57, 0x82, 0x20, 0x00, 0x06,
 497           0x61}},               
 498         {{0x85, 0x63, 0x63, 0x89, 0x6f, 0x1a, 0x91, 0xf0,
 499           0x58, 0x8b, 0x57, 0x57, 0x92, 0x20, 0x00, 0x06,
 500           0x61}},               
 501         {{0x99, 0x7f, 0x7f, 0x9d, 0x84, 0x1a, 0x96, 0x1f,
 502           0x7f, 0x83, 0x7f, 0x7f, 0x97, 0x10, 0x00, 0x02,
 503           0x00}},               
 504         {{0xa3, 0x7f, 0x7f, 0x87, 0x86, 0x97, 0x24, 0xf5,
 505           0x02, 0x88, 0xff, 0xff, 0x25, 0x10, 0x00, 0x02,
 506           0x01}},               
 507         {{0xa1, 0x7f, 0x7f, 0x85, 0x86, 0x97, 0x24, 0xf5,
 508           0x02, 0x88, 0xff, 0xff, 0x25, 0x10, 0x00, 0x02,
 509           0x01}},               
 510         {{0x9f, 0x7f, 0x7f, 0x83, 0x85, 0x91, 0x1e, 0xf5,
 511           0x00, 0x83, 0xff, 0xff, 0x1f, 0x10, 0x00, 0x02,
 512           0x01}},               
 513         {{0xa7, 0x7f, 0x7f, 0x8b, 0x89, 0x95, 0x26, 0xf5,
 514           0x00, 0x83, 0xff, 0xff, 0x27, 0x10, 0x00, 0x02,
 515           0x01}},               
 516         {{0xa9, 0x7f, 0x7f, 0x8d, 0x8c, 0x9a, 0x2c, 0xf5,
 517           0x00, 0x83, 0xff, 0xff, 0x2d, 0x14, 0x00, 0x02,
 518           0x62}},               
 519         {{0xab, 0x7f, 0x7f, 0x8f, 0x8d, 0x9b, 0x35, 0xf5,
 520           0x00, 0x83, 0xff, 0xff, 0x36, 0x14, 0x00, 0x02,
 521           0x62}},               
 522         {{0xcf, 0x9f, 0x9f, 0x93, 0xb2, 0x01, 0x14, 0xba,
 523           0x00, 0x83, 0xff, 0xff, 0x15, 0x00, 0x00, 0x03,
 524           0x00}},               
 525         {{0xce, 0x9f, 0x9f, 0x92, 0xa9, 0x17, 0x28, 0x5a,
 526           0x00, 0x83, 0xff, 0xff, 0x29, 0x09, 0x00, 0x07,
 527           0x01}},               
 528         {{0xce, 0x9f, 0x9f, 0x92, 0xa5, 0x17, 0x28, 0x5a,
 529           0x00, 0x83, 0xff, 0xff, 0x29, 0x09, 0x00, 0x07,
 530           0x01}},               
 531         {{0xd3, 0x9f, 0x9f, 0x97, 0xab, 0x1f, 0x2e, 0x5a,
 532           0x00, 0x83, 0xff, 0xff, 0x2f, 0x09, 0x00, 0x07,
 533           0x01}},               
 534         {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
 535           0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
 536           0x00}},               
 537         {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
 538           0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
 539           0x00}},               
 540         {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
 541           0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
 542           0x00}},               
 543         {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
 544           0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
 545           0x00}},               
 546         {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
 547           0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
 548           0x00}},               
 549         {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
 550           0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
 551           0x00}},               
 552         {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
 553           0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
 554           0x00}},               
 555         {{0x40, 0xef, 0xef, 0x84, 0x03, 0x1d, 0xda, 0x1f,
 556           0xa0, 0x83, 0x9f, 0x9f, 0xdb, 0x1f, 0x41, 0x01,
 557           0x00}},               
 558         {{0x43, 0xef, 0xef, 0x87, 0x06, 0x00, 0xd4, 0x1f,
 559           0xa0, 0x83, 0x9f, 0x9f, 0xd5, 0x1f, 0x41, 0x05,
 560           0x63}},               
 561         {{0x45, 0xef, 0xef, 0x89, 0x07, 0x01, 0xd9, 0x1f,
 562           0xa0, 0x83, 0x9f, 0x9f, 0xda, 0x1f, 0x41, 0x05,
 563           0x63}},               
 564         {{0x40, 0xef, 0xef, 0x84, 0x03, 0x1d, 0xda, 0x1f,
 565           0xa0, 0x83, 0x9f, 0x9f, 0xdb, 0x1f, 0x41, 0x01,
 566           0x00}},               
 567         {{0x40, 0xef, 0xef, 0x84, 0x03, 0x1d, 0xda, 0x1f,
 568           0xa0, 0x83, 0x9f, 0x9f, 0xdb, 0x1f, 0x41, 0x01,
 569           0x00}},               
 570         {{0x40, 0xef, 0xef, 0x84, 0x03, 0x1d, 0xda, 0x1f,
 571           0xa0, 0x83, 0x9f, 0x9f, 0xdb, 0x1f, 0x41, 0x01,
 572           0x00}},               
 573         {{0x59, 0xff, 0xff, 0x9d, 0x17, 0x13, 0x33, 0xba,
 574           0x00, 0x83, 0xff, 0xff, 0x34, 0x0f, 0x41, 0x05,
 575           0x44}},               
 576         {{0x5b, 0xff, 0xff, 0x9f, 0x18, 0x14, 0x38, 0xba,
 577           0x00, 0x83, 0xff, 0xff, 0x39, 0x0f, 0x41, 0x05,
 578           0x44}},               
 579         {{0x5b, 0xff, 0xff, 0x9f, 0x18, 0x14, 0x3d, 0xba,
 580           0x00, 0x83, 0xff, 0xff, 0x3e, 0x0f, 0x41, 0x05,
 581           0x44}},               
 582         {{0x5d, 0xff, 0xff, 0x81, 0x19, 0x95, 0x41, 0xba,
 583           0x00, 0x84, 0xff, 0xff, 0x42, 0x0f, 0x41, 0x05,
 584           0x44}},               
 585         {{0x55, 0xff, 0xff, 0x99, 0x0d, 0x0c, 0x3e, 0xba,
 586           0x00, 0x84, 0xff, 0xff, 0x3f, 0x0f, 0x41, 0x05,
 587           0x00}},               
 588         {{0x7f, 0x63, 0x63, 0x83, 0x6c, 0x1c, 0x72, 0xba,
 589           0x27, 0x8b, 0xdf, 0xdf, 0x73, 0x00, 0x00, 0x06,
 590           0x01}},               
 591         {{0x7f, 0x63, 0x63, 0x83, 0x69, 0x13, 0x6f, 0xba,
 592           0x26, 0x89, 0xdf, 0xdf, 0x6f, 0x00, 0x00, 0x06,
 593           0x01}},               
 594         {{0x7f, 0x63, 0x63, 0x82, 0x6b, 0x13, 0x75, 0xba,
 595           0x29, 0x8c, 0xdf, 0xdf, 0x75, 0x00, 0x00, 0x06,
 596           0x01}},               
 597         {{0xa3, 0x7f, 0x7f, 0x87, 0x86, 0x97, 0x24, 0xf1,
 598           0xaf, 0x85, 0x3f, 0x3f, 0x25, 0x30, 0x00, 0x02,
 599           0x01}},               
 600         {{0x9f, 0x7f, 0x7f, 0x83, 0x85, 0x91, 0x1e, 0xf1,
 601           0xad, 0x81, 0x3f, 0x3f, 0x1f, 0x30, 0x00, 0x02,
 602           0x01}},               
 603         {{0xa7, 0x7f, 0x7f, 0x88, 0x89, 0x95, 0x26, 0xf1,
 604           0xb1, 0x85, 0x3f, 0x3f, 0x27, 0x30, 0x00, 0x02,
 605           0x01}},               
 606         {{0xce, 0x9f, 0x9f, 0x92, 0xa9, 0x17, 0x28, 0xc4,
 607           0x7a, 0x8e, 0xcf, 0xcf, 0x29, 0x21, 0x00, 0x07,
 608           0x01}},               
 609         {{0xce, 0x9f, 0x9f, 0x92, 0xa5, 0x17, 0x28, 0xd4,
 610           0x7a, 0x8e, 0xcf, 0xcf, 0x29, 0x21, 0x00, 0x07,
 611           0x01}},               
 612         {{0xd3, 0x9f, 0x9f, 0x97, 0xab, 0x1f, 0x2e, 0xd4,
 613           0x7d, 0x81, 0xcf, 0xcf, 0x2f, 0x21, 0x00, 0x07,
 614           0x01}},               
 615         {{0xdc, 0x9f, 0x9f, 0x80, 0xaf, 0x9d, 0xe6, 0xff,
 616           0xc0, 0x83, 0xbf, 0xbf, 0xe7, 0x10, 0x00, 0x07,
 617           0x01}},               
 618         {{0x6b, 0x59, 0x59, 0x8f, 0x5e, 0x8c, 0x0b, 0x3e,
 619           0xe9, 0x8b, 0xdf, 0xe7, 0x04, 0x00, 0x00, 0x05,
 620           0x00}},               
 621         {{0x6d, 0x59, 0x59, 0x91, 0x60, 0x89, 0x53, 0xf0,
 622           0x41, 0x84, 0x3f, 0x3f, 0x54, 0x00, 0x00, 0x05,
 623           0x41}},               
 624         {{0x86, 0x6a, 0x6a, 0x8a, 0x74, 0x06, 0x8c, 0x15,
 625           0x4f, 0x83, 0xef, 0xef, 0x8d, 0x30, 0x00, 0x02,
 626           0x00}},               
 627         {{0x81, 0x6a, 0x6a, 0x85, 0x70, 0x00, 0x0f, 0x3e,
 628           0xeb, 0x8e, 0xdf, 0xdf, 0x10, 0x00, 0x00, 0x02,
 629           0x00}},               
 630         {{0xa3, 0x7f, 0x7f, 0x87, 0x86, 0x97, 0x1e, 0xf1,
 631           0xae, 0x85, 0x57, 0x57, 0x1f, 0x30, 0x00, 0x02,
 632           0x01}},               
 633         {{0xa3, 0x7f, 0x7f, 0x87, 0x86, 0x97, 0x24, 0xf5,
 634           0x02, 0x88, 0xff, 0xff, 0x25, 0x10, 0x00, 0x02,
 635           0x01}},               
 636         {{0xce, 0x9f, 0x9f, 0x92, 0xa9, 0x17, 0x20, 0xf5,
 637           0x03, 0x88, 0xff, 0xff, 0x21, 0x10, 0x00, 0x07,
 638           0x01}},               
 639         {{0xe6, 0xae, 0xae, 0x8a, 0xbd, 0x90, 0x3d, 0x10,
 640           0x1a, 0x8d, 0x19, 0x19, 0x3e, 0x2f, 0x00, 0x03,
 641           0x00}},               
 642         {{0xc3, 0x8f, 0x8f, 0x87, 0x9b, 0x0b, 0x82, 0xef,
 643           0x60, 0x83, 0x5f, 0x5f, 0x83, 0x10, 0x00, 0x07,
 644           0x01}},               
 645         {{0x86, 0x69, 0x69, 0x8A, 0x74, 0x06, 0x8C, 0x15,
 646           0x4F, 0x83, 0xEF, 0xEF, 0x8D, 0x30, 0x00, 0x02,
 647           0x00}},               
 648         {{0x83, 0x69, 0x69, 0x87, 0x6f, 0x1d, 0x03, 0x3E,
 649           0xE5, 0x8d, 0xDF, 0xe4, 0x04, 0x00, 0x00, 0x06,
 650           0x00}},               
 651         {{0x86, 0x6A, 0x6A, 0x8A, 0x74, 0x06, 0x8C, 0x15,
 652           0x4F, 0x83, 0xEF, 0xEF, 0x8D, 0x30, 0x00, 0x02,
 653           0x00}},               
 654         {{0x81, 0x6A, 0x6A, 0x85, 0x70, 0x00, 0x0F, 0x3E,
 655           0xEB, 0x8E, 0xDF, 0xDF, 0x10, 0x00, 0x00, 0x02,
 656           0x00}},               
 657         {{0xdd, 0xa9, 0xa9, 0x81, 0xb4, 0x97, 0x26, 0xfd,
 658           0x01, 0x8d, 0xff, 0x00, 0x27, 0x10, 0x00, 0x03,
 659           0x01}},               
 660         {{0xd9, 0x8f, 0x8f, 0x9d, 0xba, 0x0a, 0x8a, 0xff,
 661           0x60, 0x8b, 0x5f, 0x5f, 0x8b, 0x10, 0x00, 0x03,
 662           0x01}},               
 663         {{0xea, 0xae, 0xae, 0x8e, 0xba, 0x82, 0x40, 0x10,
 664           0x1b, 0x87, 0x19, 0x1a, 0x41, 0x0f, 0x00, 0x03,
 665           0x00}},               
 666         {{0xd3, 0x9f, 0x9f, 0x97, 0xab, 0x1f, 0xf1, 0xff,
 667           0xc0, 0x83, 0xbf, 0xbf, 0xf2, 0x10, 0x00, 0x07,
 668           0x01}},               
 669         {{0x75, 0x5f, 0x5f, 0x99, 0x66, 0x90, 0x53, 0xf0,
 670           0x41, 0x84, 0x3f, 0x3f, 0x54, 0x00, 0x00, 0x05,
 671           0x41}},
 672         {{0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0x0b, 0x3e,
 673           0xe9, 0x8b, 0xdf, 0xe7, 0x04, 0x00, 0x00, 0x00,
 674           0x00}},               
 675         {{0xcd, 0x9f, 0x9f, 0x91, 0xab, 0x1c, 0x3a, 0xff,
 676           0x20, 0x83, 0x1f, 0x1f, 0x3b, 0x10, 0x00, 0x07,
 677           0x21}},               
 678         {{0x15, 0xd1, 0xd1, 0x99, 0xe2, 0x19, 0x3d, 0x10,
 679           0x1a, 0x8d, 0x19, 0x19, 0x3e, 0x2f, 0x01, 0x0c,
 680           0x20}},               
 681         {{0x0e, 0xef, 0xef, 0x92, 0xfe, 0x03, 0x30, 0xf0,
 682           0x1e, 0x83, 0x1b, 0x1c, 0x31, 0x00, 0x01, 0x00,
 683           0x61}},               
 684         {{0x85, 0x77, 0x77, 0x89, 0x7d, 0x01, 0x31, 0xf0,
 685           0x1e, 0x84, 0x1b, 0x1c, 0x32, 0x00, 0x00, 0x02,
 686           0x41}},               
 687         {{0x87, 0x77, 0x77, 0x8b, 0x81, 0x0b, 0x68, 0xf0,
 688           0x5a, 0x80, 0x57, 0x57, 0x69, 0x00, 0x00, 0x02,
 689           0x01}},               
 690         {{0xcd, 0x8f, 0x8f, 0x91, 0x9b, 0x1b, 0x7a, 0xff,
 691           0x64, 0x8c, 0x5f, 0x62, 0x7b, 0x10, 0x00, 0x07,
 692           0x41}}                
 693 };
 694 
 695 static const struct SiS_VCLKData SiSUSB_VCLKData[] = {
 696         {0x1b, 0xe1, 25},       
 697         {0x4e, 0xe4, 28},       
 698         {0x57, 0xe4, 31},       
 699         {0xc3, 0xc8, 36},       
 700         {0x42, 0xe2, 40},       
 701         {0xfe, 0xcd, 43},       
 702         {0x5d, 0xc4, 44},       
 703         {0x52, 0xe2, 49},       
 704         {0x53, 0xe2, 50},       
 705         {0x74, 0x67, 52},       
 706         {0x6d, 0x66, 56},       
 707         {0x5a, 0x64, 65},       
 708         {0x46, 0x44, 67},       
 709         {0xb1, 0x46, 68},       
 710         {0xd3, 0x4a, 72},       
 711         {0x29, 0x61, 75},       
 712         {0x6e, 0x46, 76},       
 713         {0x2b, 0x61, 78},       
 714         {0x31, 0x42, 79},       
 715         {0xab, 0x44, 83},       
 716         {0x46, 0x25, 84},       
 717         {0x78, 0x29, 86},       
 718         {0x62, 0x44, 94},       
 719         {0x2b, 0x41, 104},      
 720         {0x3a, 0x23, 105},      
 721         {0x70, 0x44, 108},      
 722         {0x3c, 0x23, 109},      
 723         {0x5e, 0x43, 113},      
 724         {0xbc, 0x44, 116},      
 725         {0xe0, 0x46, 132},      
 726         {0x54, 0x42, 135},      
 727         {0xea, 0x2a, 139},      
 728         {0x41, 0x22, 157},      
 729         {0x70, 0x24, 162},      
 730         {0x30, 0x21, 175},      
 731         {0x4e, 0x22, 189},      
 732         {0xde, 0x26, 194},      
 733         {0x62, 0x06, 202},      
 734         {0x3f, 0x03, 229},      
 735         {0xb8, 0x06, 234},      
 736         {0x34, 0x02, 253},      
 737         {0x58, 0x04, 255},      
 738         {0x24, 0x01, 265},      
 739         {0x9b, 0x02, 267},      
 740         {0x70, 0x05, 270},      
 741         {0x25, 0x01, 272},      
 742         {0x9c, 0x02, 277},      
 743         {0x27, 0x01, 286},      
 744         {0x3c, 0x02, 291},      
 745         {0xef, 0x0a, 292},      
 746         {0xf6, 0x0a, 310},      
 747         {0x95, 0x01, 315},      
 748         {0xf0, 0x09, 324},      
 749         {0xfe, 0x0a, 331},      
 750         {0xf3, 0x09, 332},      
 751         {0xea, 0x08, 340},      
 752         {0xe8, 0x07, 376},      
 753         {0xde, 0x06, 389},      
 754         {0x52, 0x2a, 54},       
 755         {0x52, 0x6a, 27},       
 756         {0x62, 0x24, 70},       
 757         {0x62, 0x64, 70},       
 758         {0xa8, 0x4c, 30},       
 759         {0x20, 0x26, 33},       
 760         {0x31, 0xc2, 39},       
 761         {0x60, 0x36, 30},       
 762         {0x40, 0x4a, 28},       
 763         {0x9f, 0x46, 44},       
 764         {0x97, 0x2c, 26},       
 765         {0x44, 0xe4, 25},       
 766         {0x7e, 0x32, 47},       
 767         {0x8a, 0x24, 31},       
 768         {0x97, 0x2c, 26},       
 769         {0xce, 0x3c, 39},       
 770         {0x52, 0x4a, 36},       
 771         {0x34, 0x61, 95},       
 772         {0x78, 0x27, 108},      
 773         {0x66, 0x43, 123},      
 774         {0x41, 0x4e, 21},       
 775         {0xa1, 0x4a, 29},       
 776         {0x19, 0x42, 42},       
 777         {0x54, 0x46, 58},       
 778         {0x25, 0x42, 61},       
 779         {0x44, 0x44, 66},       
 780         {0x3a, 0x62, 70},       
 781         {0x62, 0xc6, 34},       
 782         {0x6a, 0xc6, 37},       
 783         {0xbf, 0xc8, 35},       
 784         {0x30, 0x23, 88},       
 785         {0x52, 0x07, 149},      
 786         {0x56, 0x07, 156},      
 787         {0x70, 0x29, 81},       
 788         {0x45, 0x25, 83},       
 789         {0x70, 0x0a, 147},      
 790         {0x70, 0x24, 162},      
 791         {0x5a, 0x64, 65},       
 792         {0x63, 0x46, 68},       
 793         {0x31, 0x42, 79},       
 794         {0, 0, 0},              
 795         {0x5a, 0x64, 65},       
 796         {0x70, 0x28, 90},       
 797         {0x41, 0xc4, 32},       
 798         {0x5c, 0xc6, 32},       
 799         {0x76, 0xe7, 27},       
 800         {0x5f, 0xc6, 33},       
 801         {0x52, 0x27, 75},       
 802         {0x7c, 0x6b, 38},       
 803         {0xe3, 0x56, 41},       
 804         {0x45, 0x25, 83},       
 805         {0x70, 0x28, 90},       
 806         {0x15, 0xe1, 20},       
 807         {0x5f, 0xc6, 33},       
 808         {0x37, 0x5a, 10},       
 809         {0x2b, 0xc2, 35}        
 810 };
 811 
 812 int SiSUSBSetMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo);
 813 int SiSUSBSetVESAMode(struct SiS_Private *SiS_Pr, unsigned short VModeNo);
 814 
 815 extern int sisusb_setreg(struct sisusb_usb_data *sisusb, u32 port, u8 data);
 816 extern int sisusb_getreg(struct sisusb_usb_data *sisusb, u32 port, u8 * data);
 817 extern int sisusb_setidxreg(struct sisusb_usb_data *sisusb, u32 port,
 818                             u8 index, u8 data);
 819 extern int sisusb_getidxreg(struct sisusb_usb_data *sisusb, u32 port,
 820                             u8 index, u8 * data);
 821 extern int sisusb_setidxregandor(struct sisusb_usb_data *sisusb, u32 port,
 822                                  u8 idx, u8 myand, u8 myor);
 823 extern int sisusb_setidxregor(struct sisusb_usb_data *sisusb, u32 port,
 824                               u8 index, u8 myor);
 825 extern int sisusb_setidxregand(struct sisusb_usb_data *sisusb, u32 port,
 826                                u8 idx, u8 myand);
 827 
 828 void sisusb_delete(struct kref *kref);
 829 int sisusb_writeb(struct sisusb_usb_data *sisusb, u32 adr, u8 data);
 830 int sisusb_readb(struct sisusb_usb_data *sisusb, u32 adr, u8 * data);
 831 int sisusb_copy_memory(struct sisusb_usb_data *sisusb, char *src,
 832                        u32 dest, int length);
 833 int sisusb_reset_text_mode(struct sisusb_usb_data *sisusb, int init);
 834 int sisusbcon_do_font_op(struct sisusb_usb_data *sisusb, int set, int slot,
 835                          u8 * arg, int cmapsz, int ch512, int dorecalc,
 836                          struct vc_data *c, int fh, int uplock);
 837 void sisusb_set_cursor(struct sisusb_usb_data *sisusb, unsigned int location);
 838 int sisusb_console_init(struct sisusb_usb_data *sisusb, int first, int last);
 839 void sisusb_console_exit(struct sisusb_usb_data *sisusb);
 840 void sisusb_init_concode(void);
 841 
 842 #endif