11bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer/* 21bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * General structure definitions for universal mode switching modules 31bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * 41bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria 51bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * 61bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * If distributed as part of the Linux kernel, the following license terms 71bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * apply: 81bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * 91bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * This program is free software; you can redistribute it and/or modify 101bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * it under the terms of the GNU General Public License as published by 111bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * the Free Software Foundation; either version 2 of the named License, 121bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * or any later version. 131bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * 141bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * This program is distributed in the hope that it will be useful, 151bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * but WITHOUT ANY WARRANTY; without even the implied warranty of 161bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 171bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * GNU General Public License for more details. 181bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * 191bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * You should have received a copy of the GNU General Public License 201bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * along with this program; if not, write to the Free Software 211bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA 221bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * 231bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * Otherwise, the following license terms apply: 241bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * 251bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * Redistribution and use in source and binary forms, with or without 261bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * modification, are permitted provided that the following conditions 271bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * are met: 281bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * 1) Redistributions of source code must retain the above copyright 291bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * notice, this list of conditions and the following disclaimer. 301bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * 2) Redistributions in binary form must reproduce the above copyright 311bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * notice, this list of conditions and the following disclaimer in the 321bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * documentation and/or other materials provided with the distribution. 331bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * 3) The name of the author may not be used to endorse or promote products 341bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * derived from this software without specific prior written permission. 351bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * 361bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 371bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 381bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 391bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 401bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 411bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 421bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 431bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 441bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 451bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 461bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * 47ed86d97068c7d53561d3e9b59db6c6b11f6091c7Felipe Balbi * Author: Thomas Winischhofer <thomas@winischhofer.net> 481bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer * 491bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer */ 501bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer 511bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer#ifndef _SISUSB_STRUCT_H_ 521bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer#define _SISUSB_STRUCT_H_ 531bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer 541bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhoferstruct SiS_St { 55ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char St_ModeID; 56ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned short St_ModeFlag; 57ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char St_StTableIndex; 58ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char St_CRT2CRTC; 59ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char St_ResInfo; 60ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char VB_StTVFlickerIndex; 61ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char VB_StTVEdgeIndex; 62ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char VB_StTVYFilterIndex; 63ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char St_PDC; 641bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer}; 651bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer 66ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbistruct SiS_StandTable { 67ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char CRT_COLS; 68ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char ROWS; 69ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char CHAR_HEIGHT; 70ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned short CRT_LEN; 71ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char SR[4]; 72ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char MISC; 73ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char CRTC[0x19]; 74ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char ATTR[0x14]; 75ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char GRC[9]; 761bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer}; 771bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer 781bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhoferstruct SiS_StResInfo_S { 79ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned short HTotal; 80ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned short VTotal; 811bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer}; 821bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer 83ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbistruct SiS_Ext { 84ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char Ext_ModeID; 85ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned short Ext_ModeFlag; 86ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned short Ext_VESAID; 87ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char Ext_RESINFO; 88ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char VB_ExtTVFlickerIndex; 89ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char VB_ExtTVEdgeIndex; 90ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char VB_ExtTVYFilterIndex; 91ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char VB_ExtTVYFilterIndexROM661; 92ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char REFindex; 93ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi char ROMMODEIDX661; 941bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer}; 951bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer 96ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbistruct SiS_Ext2 { 97ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned short Ext_InfoFlag; 98ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char Ext_CRT1CRTC; 99ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char Ext_CRTVCLK; 100ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char Ext_CRT2CRTC; 101ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char Ext_CRT2CRTC_NS; 102ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char ModeID; 103ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned short XRes; 104ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned short YRes; 105ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char Ext_PDC; 106ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char Ext_FakeCRT2CRTC; 107ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char Ext_FakeCRT2Clk; 1081bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer}; 1091bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer 110ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbistruct SiS_CRT1Table { 111ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char CR[17]; 1121bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer}; 1131bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer 114ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbistruct SiS_VCLKData { 115ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char SR2B, SR2C; 116ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned short CLOCK; 1171bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer}; 1181bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer 119ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbistruct SiS_ModeResInfo { 120ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned short HTotal; 121ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned short VTotal; 122ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char XChar; 123ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char YChar; 1241bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer}; 1251bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer 126ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbistruct SiS_Private { 1271bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer void *sisusb; 1281bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer 1291bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer unsigned long IOAddress; 1301bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer 1311bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer unsigned long SiS_P3c4; 1321bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer unsigned long SiS_P3d4; 1331bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer unsigned long SiS_P3c0; 1341bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer unsigned long SiS_P3ce; 1351bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer unsigned long SiS_P3c2; 1361bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer unsigned long SiS_P3ca; 1371bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer unsigned long SiS_P3c6; 1381bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer unsigned long SiS_P3c7; 1391bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer unsigned long SiS_P3c8; 1401bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer unsigned long SiS_P3c9; 1411bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer unsigned long SiS_P3cb; 1421bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer unsigned long SiS_P3cc; 1431bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer unsigned long SiS_P3cd; 1441bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer unsigned long SiS_P3da; 1451bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer unsigned long SiS_Part1Port; 1461bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer 147ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned char SiS_MyCR63; 148ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned short SiS_CRT1Mode; 149ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned short SiS_ModeType; 150ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi unsigned short SiS_SetFlag; 151ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi 152ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi const struct SiS_StandTable *SiS_StandTable; 153ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi const struct SiS_St *SiS_SModeIDTable; 154ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi const struct SiS_Ext *SiS_EModeIDTable; 155ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi const struct SiS_Ext2 *SiS_RefIndex; 156ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi const struct SiS_CRT1Table *SiS_CRT1Table; 157ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi const struct SiS_VCLKData *SiS_VCLKData; 158ecb8b190bcf49e67a6bd955340ecc07d243b6efaFelipe Balbi const struct SiS_ModeResInfo *SiS_ModeResInfo; 1591bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer}; 1601bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer 1611bbb4f2035d94d86e52e9b5341c142dcb39bb879Thomas Winischhofer#endif 162