vstruct.h 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552
  1. /* $XFree86$ */
  2. /* $XdotOrg$ */
  3. /*
  4. * General structure definitions for universal mode switching modules
  5. *
  6. * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria
  7. *
  8. * If distributed as part of the Linux kernel, the following license terms
  9. * apply:
  10. *
  11. * * This program is free software; you can redistribute it and/or modify
  12. * * it under the terms of the GNU General Public License as published by
  13. * * the Free Software Foundation; either version 2 of the named License,
  14. * * or any later version.
  15. * *
  16. * * This program is distributed in the hope that it will be useful,
  17. * * but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19. * * GNU General Public License for more details.
  20. * *
  21. * * You should have received a copy of the GNU General Public License
  22. * * along with this program; if not, write to the Free Software
  23. * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
  24. *
  25. * Otherwise, the following license terms apply:
  26. *
  27. * * Redistribution and use in source and binary forms, with or without
  28. * * modification, are permitted provided that the following conditions
  29. * * are met:
  30. * * 1) Redistributions of source code must retain the above copyright
  31. * * notice, this list of conditions and the following disclaimer.
  32. * * 2) Redistributions in binary form must reproduce the above copyright
  33. * * notice, this list of conditions and the following disclaimer in the
  34. * * documentation and/or other materials provided with the distribution.
  35. * * 3) The name of the author may not be used to endorse or promote products
  36. * * derived from this software without specific prior written permission.
  37. * *
  38. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  39. * * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  40. * * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  41. * * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  42. * * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  43. * * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  44. * * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  45. * * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  46. * * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  47. * * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  48. *
  49. * Author: Thomas Winischhofer <thomas@winischhofer.net>
  50. *
  51. */
  52. #ifndef _VSTRUCT_H_
  53. #define _VSTRUCT_H_
  54. struct SiS_PanelDelayTbl {
  55. unsigned char timer[2];
  56. };
  57. struct SiS_LCDData {
  58. unsigned short RVBHCMAX;
  59. unsigned short RVBHCFACT;
  60. unsigned short VGAHT;
  61. unsigned short VGAVT;
  62. unsigned short LCDHT;
  63. unsigned short LCDVT;
  64. };
  65. struct SiS_TVData {
  66. unsigned short RVBHCMAX;
  67. unsigned short RVBHCFACT;
  68. unsigned short VGAHT;
  69. unsigned short VGAVT;
  70. unsigned short TVHDE;
  71. unsigned short TVVDE;
  72. unsigned short RVBHRS;
  73. unsigned char FlickerMode;
  74. unsigned short HALFRVBHRS;
  75. unsigned short RVBHRS2;
  76. unsigned char RY1COE;
  77. unsigned char RY2COE;
  78. unsigned char RY3COE;
  79. unsigned char RY4COE;
  80. };
  81. struct SiS_LVDSData {
  82. unsigned short VGAHT;
  83. unsigned short VGAVT;
  84. unsigned short LCDHT;
  85. unsigned short LCDVT;
  86. };
  87. struct SiS_LVDSDes {
  88. unsigned short LCDHDES;
  89. unsigned short LCDVDES;
  90. };
  91. struct SiS_LVDSCRT1Data {
  92. unsigned char CR[15];
  93. };
  94. struct SiS_CHTVRegData {
  95. unsigned char Reg[16];
  96. };
  97. struct SiS_St {
  98. unsigned char St_ModeID;
  99. unsigned short St_ModeFlag;
  100. unsigned char St_StTableIndex;
  101. unsigned char St_CRT2CRTC;
  102. unsigned char St_ResInfo;
  103. unsigned char VB_StTVFlickerIndex;
  104. unsigned char VB_StTVEdgeIndex;
  105. unsigned char VB_StTVYFilterIndex;
  106. unsigned char St_PDC;
  107. };
  108. struct SiS_VBMode {
  109. unsigned char ModeID;
  110. unsigned char VB_TVDelayIndex;
  111. unsigned char VB_TVFlickerIndex;
  112. unsigned char VB_TVPhaseIndex;
  113. unsigned char VB_TVYFilterIndex;
  114. unsigned char VB_LCDDelayIndex;
  115. unsigned char _VB_LCDHIndex;
  116. unsigned char _VB_LCDVIndex;
  117. };
  118. struct SiS_StandTable_S {
  119. unsigned char CRT_COLS;
  120. unsigned char ROWS;
  121. unsigned char CHAR_HEIGHT;
  122. unsigned short CRT_LEN;
  123. unsigned char SR[4];
  124. unsigned char MISC;
  125. unsigned char CRTC[0x19];
  126. unsigned char ATTR[0x14];
  127. unsigned char GRC[9];
  128. };
  129. struct SiS_Ext {
  130. unsigned char Ext_ModeID;
  131. unsigned short Ext_ModeFlag;
  132. unsigned short Ext_VESAID;
  133. unsigned char Ext_RESINFO;
  134. unsigned char VB_ExtTVFlickerIndex;
  135. unsigned char VB_ExtTVEdgeIndex;
  136. unsigned char VB_ExtTVYFilterIndex;
  137. unsigned char VB_ExtTVYFilterIndexROM661;
  138. unsigned char REFindex;
  139. char ROMMODEIDX661;
  140. };
  141. struct SiS_Ext2 {
  142. unsigned short Ext_InfoFlag;
  143. unsigned char Ext_CRT1CRTC;
  144. unsigned char Ext_CRTVCLK;
  145. unsigned char Ext_CRT2CRTC;
  146. unsigned char Ext_CRT2CRTC_NS;
  147. unsigned char ModeID;
  148. unsigned short XRes;
  149. unsigned short YRes;
  150. unsigned char Ext_PDC;
  151. unsigned char Ext_FakeCRT2CRTC;
  152. unsigned char Ext_FakeCRT2Clk;
  153. unsigned char Ext_CRT1CRTC_NORM;
  154. unsigned char Ext_CRTVCLK_NORM;
  155. unsigned char Ext_CRT1CRTC_WIDE;
  156. unsigned char Ext_CRTVCLK_WIDE;
  157. };
  158. struct SiS_Part2PortTbl {
  159. unsigned char CR[12];
  160. };
  161. struct SiS_CRT1Table {
  162. unsigned char CR[17];
  163. };
  164. struct SiS_MCLKData {
  165. unsigned char SR28,SR29,SR2A;
  166. unsigned short CLOCK;
  167. };
  168. struct SiS_VCLKData {
  169. unsigned char SR2B,SR2C;
  170. unsigned short CLOCK;
  171. };
  172. struct SiS_VBVCLKData {
  173. unsigned char Part4_A,Part4_B;
  174. unsigned short CLOCK;
  175. };
  176. struct SiS_StResInfo_S {
  177. unsigned short HTotal;
  178. unsigned short VTotal;
  179. };
  180. struct SiS_ModeResInfo_S {
  181. unsigned short HTotal;
  182. unsigned short VTotal;
  183. unsigned char XChar;
  184. unsigned char YChar;
  185. };
  186. /* Defines for SiS_CustomT */
  187. /* Never change these for sisfb compatibility */
  188. #define CUT_NONE 0
  189. #define CUT_FORCENONE 1
  190. #define CUT_BARCO1366 2
  191. #define CUT_BARCO1024 3
  192. #define CUT_COMPAQ1280 4
  193. #define CUT_COMPAQ12802 5
  194. #define CUT_PANEL848 6
  195. #define CUT_CLEVO1024 7
  196. #define CUT_CLEVO10242 8
  197. #define CUT_CLEVO1400 9
  198. #define CUT_CLEVO14002 10
  199. #define CUT_UNIWILL1024 11
  200. #define CUT_ASUSL3000D 12
  201. #define CUT_UNIWILL10242 13
  202. #define CUT_ACER1280 14
  203. #define CUT_COMPAL1400_1 15
  204. #define CUT_COMPAL1400_2 16
  205. #define CUT_ASUSA2H_1 17
  206. #define CUT_ASUSA2H_2 18
  207. #define CUT_UNKNOWNLCD 19
  208. #define CUT_AOP8060 20
  209. #define CUT_PANEL856 21
  210. struct SiS_Private
  211. {
  212. unsigned char ChipType;
  213. unsigned char ChipRevision;
  214. void *ivideo;
  215. unsigned char *VirtualRomBase;
  216. bool UseROM;
  217. unsigned char SISIOMEMTYPE *VideoMemoryAddress;
  218. unsigned int VideoMemorySize;
  219. SISIOADDRESS IOAddress;
  220. SISIOADDRESS IOAddress2; /* For dual chip XGI volari */
  221. SISIOADDRESS RelIO;
  222. SISIOADDRESS SiS_P3c4;
  223. SISIOADDRESS SiS_P3d4;
  224. SISIOADDRESS SiS_P3c0;
  225. SISIOADDRESS SiS_P3ce;
  226. SISIOADDRESS SiS_P3c2;
  227. SISIOADDRESS SiS_P3ca;
  228. SISIOADDRESS SiS_P3c6;
  229. SISIOADDRESS SiS_P3c7;
  230. SISIOADDRESS SiS_P3c8;
  231. SISIOADDRESS SiS_P3c9;
  232. SISIOADDRESS SiS_P3cb;
  233. SISIOADDRESS SiS_P3cc;
  234. SISIOADDRESS SiS_P3cd;
  235. SISIOADDRESS SiS_P3da;
  236. SISIOADDRESS SiS_Part1Port;
  237. SISIOADDRESS SiS_Part2Port;
  238. SISIOADDRESS SiS_Part3Port;
  239. SISIOADDRESS SiS_Part4Port;
  240. SISIOADDRESS SiS_Part5Port;
  241. SISIOADDRESS SiS_VidCapt;
  242. SISIOADDRESS SiS_VidPlay;
  243. unsigned short SiS_IF_DEF_LVDS;
  244. unsigned short SiS_IF_DEF_CH70xx;
  245. unsigned short SiS_IF_DEF_CONEX;
  246. unsigned short SiS_IF_DEF_TRUMPION;
  247. unsigned short SiS_IF_DEF_DSTN;
  248. unsigned short SiS_IF_DEF_FSTN;
  249. unsigned short SiS_SysFlags;
  250. unsigned char SiS_VGAINFO;
  251. bool SiS_UseROM;
  252. bool SiS_ROMNew;
  253. bool SiS_XGIROM;
  254. bool SiS_NeedRomModeData;
  255. bool PanelSelfDetected;
  256. bool DDCPortMixup;
  257. int SiS_CHOverScan;
  258. bool SiS_CHSOverScan;
  259. bool SiS_ChSW;
  260. bool SiS_UseLCDA;
  261. int SiS_UseOEM;
  262. unsigned int SiS_CustomT;
  263. int SiS_UseWide, SiS_UseWideCRT2;
  264. int SiS_TVBlue;
  265. unsigned short SiS_Backup70xx;
  266. bool HaveEMI;
  267. bool HaveEMILCD;
  268. bool OverruleEMI;
  269. unsigned char EMI_30,EMI_31,EMI_32,EMI_33;
  270. unsigned short SiS_EMIOffset;
  271. unsigned short SiS_PWDOffset;
  272. short PDC, PDCA;
  273. unsigned char SiS_MyCR63;
  274. unsigned short SiS_CRT1Mode;
  275. unsigned short SiS_flag_clearbuffer;
  276. int SiS_RAMType;
  277. unsigned char SiS_ChannelAB;
  278. unsigned char SiS_DataBusWidth;
  279. unsigned short SiS_ModeType;
  280. unsigned short SiS_VBInfo;
  281. unsigned short SiS_TVMode;
  282. unsigned short SiS_LCDResInfo;
  283. unsigned short SiS_LCDTypeInfo;
  284. unsigned short SiS_LCDInfo;
  285. unsigned short SiS_LCDInfo661;
  286. unsigned short SiS_VBType;
  287. unsigned short SiS_VBExtInfo;
  288. unsigned short SiS_YPbPr;
  289. unsigned short SiS_SelectCRT2Rate;
  290. unsigned short SiS_SetFlag;
  291. unsigned short SiS_RVBHCFACT;
  292. unsigned short SiS_RVBHCMAX;
  293. unsigned short SiS_RVBHRS;
  294. unsigned short SiS_RVBHRS2;
  295. unsigned short SiS_VGAVT;
  296. unsigned short SiS_VGAHT;
  297. unsigned short SiS_VT;
  298. unsigned short SiS_HT;
  299. unsigned short SiS_VGAVDE;
  300. unsigned short SiS_VGAHDE;
  301. unsigned short SiS_VDE;
  302. unsigned short SiS_HDE;
  303. unsigned short SiS_NewFlickerMode;
  304. unsigned short SiS_RY1COE;
  305. unsigned short SiS_RY2COE;
  306. unsigned short SiS_RY3COE;
  307. unsigned short SiS_RY4COE;
  308. unsigned short SiS_LCDHDES;
  309. unsigned short SiS_LCDVDES;
  310. SISIOADDRESS SiS_DDC_Port;
  311. unsigned short SiS_DDC_Index;
  312. unsigned short SiS_DDC_Data;
  313. unsigned short SiS_DDC_NData;
  314. unsigned short SiS_DDC_Clk;
  315. unsigned short SiS_DDC_NClk;
  316. unsigned short SiS_DDC_DeviceAddr;
  317. unsigned short SiS_DDC_ReadAddr;
  318. unsigned short SiS_DDC_SecAddr;
  319. unsigned short SiS_ChrontelInit;
  320. bool SiS_SensibleSR11;
  321. unsigned short SiS661LCD2TableSize;
  322. unsigned short SiS_PanelMinLVDS;
  323. unsigned short SiS_PanelMin301;
  324. const struct SiS_St *SiS_SModeIDTable;
  325. const struct SiS_StandTable_S *SiS_StandTable;
  326. const struct SiS_Ext *SiS_EModeIDTable;
  327. const struct SiS_Ext2 *SiS_RefIndex;
  328. const struct SiS_VBMode *SiS_VBModeIDTable;
  329. const struct SiS_CRT1Table *SiS_CRT1Table;
  330. const struct SiS_MCLKData *SiS_MCLKData_0;
  331. const struct SiS_MCLKData *SiS_MCLKData_1;
  332. struct SiS_VCLKData *SiS_VCLKData;
  333. struct SiS_VBVCLKData *SiS_VBVCLKData;
  334. const struct SiS_StResInfo_S *SiS_StResInfo;
  335. const struct SiS_ModeResInfo_S *SiS_ModeResInfo;
  336. const unsigned char *pSiS_OutputSelect;
  337. const unsigned char *pSiS_SoftSetting;
  338. const unsigned char *SiS_SR15;
  339. const struct SiS_PanelDelayTbl *SiS_PanelDelayTbl;
  340. const struct SiS_PanelDelayTbl *SiS_PanelDelayTblLVDS;
  341. /* SiS bridge */
  342. const struct SiS_LCDData *SiS_ExtLCD1024x768Data;
  343. const struct SiS_LCDData *SiS_St2LCD1024x768Data;
  344. const struct SiS_LCDData *SiS_LCD1280x720Data;
  345. const struct SiS_LCDData *SiS_StLCD1280x768_2Data;
  346. const struct SiS_LCDData *SiS_ExtLCD1280x768_2Data;
  347. const struct SiS_LCDData *SiS_LCD1280x800Data;
  348. const struct SiS_LCDData *SiS_LCD1280x800_2Data;
  349. const struct SiS_LCDData *SiS_LCD1280x854Data;
  350. const struct SiS_LCDData *SiS_LCD1280x960Data;
  351. const struct SiS_LCDData *SiS_ExtLCD1280x1024Data;
  352. const struct SiS_LCDData *SiS_St2LCD1280x1024Data;
  353. const struct SiS_LCDData *SiS_StLCD1400x1050Data;
  354. const struct SiS_LCDData *SiS_ExtLCD1400x1050Data;
  355. const struct SiS_LCDData *SiS_StLCD1600x1200Data;
  356. const struct SiS_LCDData *SiS_ExtLCD1600x1200Data;
  357. const struct SiS_LCDData *SiS_LCD1680x1050Data;
  358. const struct SiS_LCDData *SiS_NoScaleData;
  359. const struct SiS_TVData *SiS_StPALData;
  360. const struct SiS_TVData *SiS_ExtPALData;
  361. const struct SiS_TVData *SiS_StNTSCData;
  362. const struct SiS_TVData *SiS_ExtNTSCData;
  363. const struct SiS_TVData *SiS_St1HiTVData;
  364. const struct SiS_TVData *SiS_St2HiTVData;
  365. const struct SiS_TVData *SiS_ExtHiTVData;
  366. const struct SiS_TVData *SiS_St525iData;
  367. const struct SiS_TVData *SiS_St525pData;
  368. const struct SiS_TVData *SiS_St750pData;
  369. const struct SiS_TVData *SiS_Ext525iData;
  370. const struct SiS_TVData *SiS_Ext525pData;
  371. const struct SiS_TVData *SiS_Ext750pData;
  372. const unsigned char *SiS_NTSCTiming;
  373. const unsigned char *SiS_PALTiming;
  374. const unsigned char *SiS_HiTVExtTiming;
  375. const unsigned char *SiS_HiTVSt1Timing;
  376. const unsigned char *SiS_HiTVSt2Timing;
  377. const unsigned char *SiS_HiTVGroup3Data;
  378. const unsigned char *SiS_HiTVGroup3Simu;
  379. #if 0
  380. const unsigned char *SiS_HiTVTextTiming;
  381. const unsigned char *SiS_HiTVGroup3Text;
  382. #endif
  383. const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_1;
  384. const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_2;
  385. const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_3;
  386. /* LVDS, Chrontel */
  387. const struct SiS_LVDSData *SiS_LVDS320x240Data_1;
  388. const struct SiS_LVDSData *SiS_LVDS320x240Data_2;
  389. const struct SiS_LVDSData *SiS_LVDS640x480Data_1;
  390. const struct SiS_LVDSData *SiS_LVDS800x600Data_1;
  391. const struct SiS_LVDSData *SiS_LVDS1024x600Data_1;
  392. const struct SiS_LVDSData *SiS_LVDS1024x768Data_1;
  393. const struct SiS_LVDSData *SiS_LVDSBARCO1366Data_1;
  394. const struct SiS_LVDSData *SiS_LVDSBARCO1366Data_2;
  395. const struct SiS_LVDSData *SiS_LVDSBARCO1024Data_1;
  396. const struct SiS_LVDSData *SiS_LVDS848x480Data_1;
  397. const struct SiS_LVDSData *SiS_LVDS848x480Data_2;
  398. const struct SiS_LVDSData *SiS_CHTVUNTSCData;
  399. const struct SiS_LVDSData *SiS_CHTVONTSCData;
  400. const struct SiS_LVDSData *SiS_CHTVUPALData;
  401. const struct SiS_LVDSData *SiS_CHTVOPALData;
  402. const struct SiS_LVDSData *SiS_CHTVUPALMData;
  403. const struct SiS_LVDSData *SiS_CHTVOPALMData;
  404. const struct SiS_LVDSData *SiS_CHTVUPALNData;
  405. const struct SiS_LVDSData *SiS_CHTVOPALNData;
  406. const struct SiS_LVDSData *SiS_CHTVSOPALData;
  407. const struct SiS_LVDSDes *SiS_PanelType04_1a;
  408. const struct SiS_LVDSDes *SiS_PanelType04_2a;
  409. const struct SiS_LVDSDes *SiS_PanelType04_1b;
  410. const struct SiS_LVDSDes *SiS_PanelType04_2b;
  411. const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_1;
  412. const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_2;
  413. const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_2_H;
  414. const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_3;
  415. const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_3_H;
  416. const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1640x480_1;
  417. const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1640x480_1_H;
  418. const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1UNTSC;
  419. const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1ONTSC;
  420. const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1UPAL;
  421. const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1OPAL;
  422. const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1SOPAL;
  423. const struct SiS_CHTVRegData *SiS_CHTVReg_UNTSC;
  424. const struct SiS_CHTVRegData *SiS_CHTVReg_ONTSC;
  425. const struct SiS_CHTVRegData *SiS_CHTVReg_UPAL;
  426. const struct SiS_CHTVRegData *SiS_CHTVReg_OPAL;
  427. const struct SiS_CHTVRegData *SiS_CHTVReg_UPALM;
  428. const struct SiS_CHTVRegData *SiS_CHTVReg_OPALM;
  429. const struct SiS_CHTVRegData *SiS_CHTVReg_UPALN;
  430. const struct SiS_CHTVRegData *SiS_CHTVReg_OPALN;
  431. const struct SiS_CHTVRegData *SiS_CHTVReg_SOPAL;
  432. const unsigned char *SiS_CHTVVCLKUNTSC;
  433. const unsigned char *SiS_CHTVVCLKONTSC;
  434. const unsigned char *SiS_CHTVVCLKUPAL;
  435. const unsigned char *SiS_CHTVVCLKOPAL;
  436. const unsigned char *SiS_CHTVVCLKUPALM;
  437. const unsigned char *SiS_CHTVVCLKOPALM;
  438. const unsigned char *SiS_CHTVVCLKUPALN;
  439. const unsigned char *SiS_CHTVVCLKOPALN;
  440. const unsigned char *SiS_CHTVVCLKSOPAL;
  441. unsigned short PanelXRes, PanelHT;
  442. unsigned short PanelYRes, PanelVT;
  443. unsigned short PanelHRS, PanelHRE;
  444. unsigned short PanelVRS, PanelVRE;
  445. unsigned short PanelVCLKIdx300;
  446. unsigned short PanelVCLKIdx315;
  447. bool Alternate1600x1200;
  448. bool UseCustomMode;
  449. bool CRT1UsesCustomMode;
  450. unsigned short CHDisplay;
  451. unsigned short CHSyncStart;
  452. unsigned short CHSyncEnd;
  453. unsigned short CHTotal;
  454. unsigned short CHBlankStart;
  455. unsigned short CHBlankEnd;
  456. unsigned short CVDisplay;
  457. unsigned short CVSyncStart;
  458. unsigned short CVSyncEnd;
  459. unsigned short CVTotal;
  460. unsigned short CVBlankStart;
  461. unsigned short CVBlankEnd;
  462. unsigned int CDClock;
  463. unsigned int CFlags;
  464. unsigned char CCRT1CRTC[17];
  465. unsigned char CSR2B;
  466. unsigned char CSR2C;
  467. unsigned short CSRClock;
  468. unsigned short CSRClock_CRT1;
  469. unsigned short CModeFlag;
  470. unsigned short CModeFlag_CRT1;
  471. unsigned short CInfoFlag;
  472. int LVDSHL;
  473. bool Backup;
  474. unsigned char Backup_Mode;
  475. unsigned char Backup_14;
  476. unsigned char Backup_15;
  477. unsigned char Backup_16;
  478. unsigned char Backup_17;
  479. unsigned char Backup_18;
  480. unsigned char Backup_19;
  481. unsigned char Backup_1a;
  482. unsigned char Backup_1b;
  483. unsigned char Backup_1c;
  484. unsigned char Backup_1d;
  485. unsigned char Init_P4_0E;
  486. int UsePanelScaler;
  487. int CenterScreen;
  488. unsigned short CP_Vendor, CP_Product;
  489. bool CP_HaveCustomData;
  490. int CP_PreferredX, CP_PreferredY, CP_PreferredIndex;
  491. int CP_MaxX, CP_MaxY, CP_MaxClock;
  492. unsigned char CP_PrefSR2B, CP_PrefSR2C;
  493. unsigned short CP_PrefClock;
  494. bool CP_Supports64048075;
  495. int CP_HDisplay[7], CP_VDisplay[7]; /* For Custom LCD panel dimensions */
  496. int CP_HTotal[7], CP_VTotal[7];
  497. int CP_HSyncStart[7], CP_VSyncStart[7];
  498. int CP_HSyncEnd[7], CP_VSyncEnd[7];
  499. int CP_HBlankStart[7], CP_VBlankStart[7];
  500. int CP_HBlankEnd[7], CP_VBlankEnd[7];
  501. int CP_Clock[7];
  502. bool CP_DataValid[7];
  503. bool CP_HSync_P[7], CP_VSync_P[7], CP_SyncValid[7];
  504. };
  505. #endif