532f649f14
The patch enables the driver to be used on platforms such as ARM where an
I/O address is a 32-bit memory address.
The patch avoids the following kernel oops:
debian:~# modprobe sisfb
[ 73.070000] sisfb: Video ROM found
[ 73.080000] sisfb: Video RAM at 0x80000000, mapped to 0xe0a00000, size 1024k
[ 73.090000] sisfb: MMIO at 0x84080000, mapped to 0xe0b80000, size 256k
[ 73.090000] sisfb: Memory heap starting at 800K, size 32K
[ 73.360000] Unable to handle kernel paging request at virtual address 6e000844
[ 73.380000] pgd = df230000
[ 73.380000] [6e000844] *pgd=00000000
[ 73.380000] Internal error: Oops: 8f5 [#1]
[ 73.380000] Modules linked in: sisfb(+) fb cfbcopyarea cfbimgblt cfbfillrect
[ 73.380000] CPU: 0 Not tainted (2.6.31-iop32x #1)
[ 73.380000] PC is at SiS_SetRegANDOR+0x10/0x38 [sisfb]
[ 73.380000] LR is at SiS_SetSCLKHigh+0x38/0x94 [sisfb]
[ 73.380000] pc : [<bf01dc00>] lr : [<bf0238f8>] psr: 60000013
[ 73.380000] sp : df38fd00 ip : 6e000000 fp : 00000002
[ 73.380000] r10: 00000108 r9 : 00000000 r8 : 00000108
[ 73.380000] r7 : df064258 r6 : 00000110 r5 : 6e000844 r4 : 0000010a
[ 73.380000] r3 : 00000001 r2 : 0000000e r1 : 00000011 r0 : 00000844
[ 73.380000] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 73.380000] Control: 0000397f Table: bf230000 DAC: 00000015
[ 73.380000] Process modprobe (pid: 1849, stack limit = 0xdf38e270)
[ 73.380000] Stack: (0xdf38fd00 to 0xdf390000)
[ 73.380000] fd00: 0000010a 00000108 df064258 df064258 df064258 00000000 00000000 bf02c4e0
[ 73.380000] fd20: 00000114 bf02c50c 00000013 00000114 0000010a df064258 00000000 bf02c980
[ 73.380000] fd40: 00009c66 00000004 00000001 df064250 a0010000 a6a2a0a0 df064250 00000003
[ 73.380000] fd60: df064250 00000000 df064258 0000fffd 00000000 00000000 00000000 bf033948
[ 73.380000] fd80: 00000000 00000000 00000000 bf019e2c 00000000 df064a70
bf03b470 00010000
[ 73.380000] fda0: 00000000 df064250 00000000 df831c00 00000012 bf039f70 00000000 c00abed8
[ 73.380000] fdc0: 000008a6 000008a4 df0649b0 df064878 df064258 df064000 00000000 00000000
[ 73.380000] fde0: 00000001 00008000 00000001 00030000 df81c930 bf049f88 df831c00 00000000
[ 73.380000] fe00: bf049f58 df3952a0 c0447708 bf049f88 bf049fe0 c0191980 df831c00 c0191b10
[ 73.380000] fe20: df831c58 bf049f58 df831c00 bf04aca8 df3952a0 df831c58 df831c58 bf049f88
[ 73.380000] fe40: c01ba1b4 c01ba0a0 df831c58 df831c8c bf049f88 c01ba1b4 df3952a0 00000000
[ 73.380000] fe60: c03e265c c01ba240 00000000 df38fe78 bf049f88 c01b990c df812938 df81b8d0
[ 73.380000] fe80: df3952a0 df807780 00000000 00000060 bf049f88 c01b9224 bf0429c8 00000000
[ 73.380000] fea0: bf049f58 00000000 bf049f88 00000000 00000000 bf04aea8 00000000 c01ba4e4
[ 73.380000] fec0: e09861a0 bf049f58 00000000 bf049f88 00000000 c0191f20 00000000 00000000
[ 73.380000] fee0: c03f7bac bf04d418 0000fff2 0000fff1 bf04ad08 0002f260 0002f260 e0986038
[ 73.380000] ff00: e0986150 e098568b df143340 e0990280 00000036 c03d8b00 fffffffd 00000000
[ 73.380000] ff20: bf04acfc 00000000 fffffffc 0003cf4b 00018098 c03f7bac 00000000 bf04d000
[ 73.380000] ff40: df38e000 00000000 bedc0984 c00272a4 ffffffff c005bc88 00000000 00000000
[ 73.380000] ff60: 0003cf4b 0003cf4b 00018098 bf04acfc 00000000 c0027fe8 df38e000 00000000
[ 73.380000] ff80: bedc0984 c006882c 00001000 00000003 00000000 00009064 00000000 00008edc
[ 73.380000] ffa0: 00000080 c0027e20 00009064 00000000 4014e000 0003cf4b 00018098 0003cf4b
[ 73.380000] ffc0: 00009064 00000000 00008edc 00000080 00000000 00000000 40025000 bedc0984
[ 73.380000] ffe0: 00000000 bedc08fc 0000b6b0 400e8f34 60000010 4014e000 00000000 00000000
[ 73.380000] [<bf01dc00>] (SiS_SetRegANDOR+0x10/0x38 [sisfb]) from [<df064258>] (0xdf064258)
[ 73.380000] Code: e92d0030 e20110ff e280546e e3a0c46e (e5c51000)
[ 73.680000] ---[ end trace 62a93e01df37a5f2 ]---
Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Cc: Thomas Winischhofer <thomas@winischhofer.net>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
564 lines
17 KiB
C
564 lines
17 KiB
C
/* $XFree86$ */
|
|
/* $XdotOrg$ */
|
|
/*
|
|
* General structure definitions for universal mode switching modules
|
|
*
|
|
* Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria
|
|
*
|
|
* If distributed as part of the Linux kernel, the following license terms
|
|
* apply:
|
|
*
|
|
* * This program is free software; you can redistribute it and/or modify
|
|
* * it under the terms of the GNU General Public License as published by
|
|
* * the Free Software Foundation; either version 2 of the named License,
|
|
* * or any later version.
|
|
* *
|
|
* * This program is distributed in the hope that it will be useful,
|
|
* * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* * GNU General Public License for more details.
|
|
* *
|
|
* * You should have received a copy of the GNU General Public License
|
|
* * along with this program; if not, write to the Free Software
|
|
* * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
|
|
*
|
|
* Otherwise, the following license terms apply:
|
|
*
|
|
* * Redistribution and use in source and binary forms, with or without
|
|
* * modification, are permitted provided that the following conditions
|
|
* * are met:
|
|
* * 1) Redistributions of source code must retain the above copyright
|
|
* * notice, this list of conditions and the following disclaimer.
|
|
* * 2) Redistributions in binary form must reproduce the above copyright
|
|
* * notice, this list of conditions and the following disclaimer in the
|
|
* * documentation and/or other materials provided with the distribution.
|
|
* * 3) The name of the author may not be used to endorse or promote products
|
|
* * derived from this software without specific prior written permission.
|
|
* *
|
|
* * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
|
* * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
* * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
* * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
* * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
* * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
* * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
* * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
* * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
* * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
* Author: Thomas Winischhofer <thomas@winischhofer.net>
|
|
*
|
|
*/
|
|
|
|
#ifndef _VSTRUCT_H_
|
|
#define _VSTRUCT_H_
|
|
|
|
struct SiS_PanelDelayTbl {
|
|
unsigned char timer[2];
|
|
};
|
|
|
|
struct SiS_LCDData {
|
|
unsigned short RVBHCMAX;
|
|
unsigned short RVBHCFACT;
|
|
unsigned short VGAHT;
|
|
unsigned short VGAVT;
|
|
unsigned short LCDHT;
|
|
unsigned short LCDVT;
|
|
};
|
|
|
|
struct SiS_TVData {
|
|
unsigned short RVBHCMAX;
|
|
unsigned short RVBHCFACT;
|
|
unsigned short VGAHT;
|
|
unsigned short VGAVT;
|
|
unsigned short TVHDE;
|
|
unsigned short TVVDE;
|
|
unsigned short RVBHRS;
|
|
unsigned char FlickerMode;
|
|
unsigned short HALFRVBHRS;
|
|
unsigned short RVBHRS2;
|
|
unsigned char RY1COE;
|
|
unsigned char RY2COE;
|
|
unsigned char RY3COE;
|
|
unsigned char RY4COE;
|
|
};
|
|
|
|
struct SiS_LVDSData {
|
|
unsigned short VGAHT;
|
|
unsigned short VGAVT;
|
|
unsigned short LCDHT;
|
|
unsigned short LCDVT;
|
|
};
|
|
|
|
struct SiS_LVDSDes {
|
|
unsigned short LCDHDES;
|
|
unsigned short LCDVDES;
|
|
};
|
|
|
|
struct SiS_LVDSCRT1Data {
|
|
unsigned char CR[15];
|
|
};
|
|
|
|
struct SiS_CHTVRegData {
|
|
unsigned char Reg[16];
|
|
};
|
|
|
|
struct SiS_St {
|
|
unsigned char St_ModeID;
|
|
unsigned short St_ModeFlag;
|
|
unsigned char St_StTableIndex;
|
|
unsigned char St_CRT2CRTC;
|
|
unsigned char St_ResInfo;
|
|
unsigned char VB_StTVFlickerIndex;
|
|
unsigned char VB_StTVEdgeIndex;
|
|
unsigned char VB_StTVYFilterIndex;
|
|
unsigned char St_PDC;
|
|
};
|
|
|
|
struct SiS_VBMode {
|
|
unsigned char ModeID;
|
|
unsigned char VB_TVDelayIndex;
|
|
unsigned char VB_TVFlickerIndex;
|
|
unsigned char VB_TVPhaseIndex;
|
|
unsigned char VB_TVYFilterIndex;
|
|
unsigned char VB_LCDDelayIndex;
|
|
unsigned char _VB_LCDHIndex;
|
|
unsigned char _VB_LCDVIndex;
|
|
};
|
|
|
|
struct SiS_StandTable_S {
|
|
unsigned char CRT_COLS;
|
|
unsigned char ROWS;
|
|
unsigned char CHAR_HEIGHT;
|
|
unsigned short CRT_LEN;
|
|
unsigned char SR[4];
|
|
unsigned char MISC;
|
|
unsigned char CRTC[0x19];
|
|
unsigned char ATTR[0x14];
|
|
unsigned char GRC[9];
|
|
};
|
|
|
|
struct SiS_Ext {
|
|
unsigned char Ext_ModeID;
|
|
unsigned short Ext_ModeFlag;
|
|
unsigned short Ext_VESAID;
|
|
unsigned char Ext_RESINFO;
|
|
unsigned char VB_ExtTVFlickerIndex;
|
|
unsigned char VB_ExtTVEdgeIndex;
|
|
unsigned char VB_ExtTVYFilterIndex;
|
|
unsigned char VB_ExtTVYFilterIndexROM661;
|
|
unsigned char REFindex;
|
|
char ROMMODEIDX661;
|
|
};
|
|
|
|
struct SiS_Ext2 {
|
|
unsigned short Ext_InfoFlag;
|
|
unsigned char Ext_CRT1CRTC;
|
|
unsigned char Ext_CRTVCLK;
|
|
unsigned char Ext_CRT2CRTC;
|
|
unsigned char Ext_CRT2CRTC_NS;
|
|
unsigned char ModeID;
|
|
unsigned short XRes;
|
|
unsigned short YRes;
|
|
unsigned char Ext_PDC;
|
|
unsigned char Ext_FakeCRT2CRTC;
|
|
unsigned char Ext_FakeCRT2Clk;
|
|
unsigned char Ext_CRT1CRTC_NORM;
|
|
unsigned char Ext_CRTVCLK_NORM;
|
|
unsigned char Ext_CRT1CRTC_WIDE;
|
|
unsigned char Ext_CRTVCLK_WIDE;
|
|
};
|
|
|
|
struct SiS_Part2PortTbl {
|
|
unsigned char CR[12];
|
|
};
|
|
|
|
struct SiS_CRT1Table {
|
|
unsigned char CR[17];
|
|
};
|
|
|
|
struct SiS_MCLKData {
|
|
unsigned char SR28,SR29,SR2A;
|
|
unsigned short CLOCK;
|
|
};
|
|
|
|
struct SiS_VCLKData {
|
|
unsigned char SR2B,SR2C;
|
|
unsigned short CLOCK;
|
|
};
|
|
|
|
struct SiS_VBVCLKData {
|
|
unsigned char Part4_A,Part4_B;
|
|
unsigned short CLOCK;
|
|
};
|
|
|
|
struct SiS_StResInfo_S {
|
|
unsigned short HTotal;
|
|
unsigned short VTotal;
|
|
};
|
|
|
|
struct SiS_ModeResInfo_S {
|
|
unsigned short HTotal;
|
|
unsigned short VTotal;
|
|
unsigned char XChar;
|
|
unsigned char YChar;
|
|
};
|
|
|
|
/* Defines for SiS_CustomT */
|
|
/* Never change these for sisfb compatibility */
|
|
#define CUT_NONE 0
|
|
#define CUT_FORCENONE 1
|
|
#define CUT_BARCO1366 2
|
|
#define CUT_BARCO1024 3
|
|
#define CUT_COMPAQ1280 4
|
|
#define CUT_COMPAQ12802 5
|
|
#define CUT_PANEL848 6
|
|
#define CUT_CLEVO1024 7
|
|
#define CUT_CLEVO10242 8
|
|
#define CUT_CLEVO1400 9
|
|
#define CUT_CLEVO14002 10
|
|
#define CUT_UNIWILL1024 11
|
|
#define CUT_ASUSL3000D 12
|
|
#define CUT_UNIWILL10242 13
|
|
#define CUT_ACER1280 14
|
|
#define CUT_COMPAL1400_1 15
|
|
#define CUT_COMPAL1400_2 16
|
|
#define CUT_ASUSA2H_1 17
|
|
#define CUT_ASUSA2H_2 18
|
|
#define CUT_UNKNOWNLCD 19
|
|
#define CUT_AOP8060 20
|
|
#define CUT_PANEL856 21
|
|
|
|
struct SiS_Private
|
|
{
|
|
unsigned char ChipType;
|
|
unsigned char ChipRevision;
|
|
#ifdef SIS_XORG_XF86
|
|
PCITAG PciTag;
|
|
#endif
|
|
#ifdef SIS_LINUX_KERNEL
|
|
void *ivideo;
|
|
#endif
|
|
unsigned char *VirtualRomBase;
|
|
bool UseROM;
|
|
#ifdef SIS_LINUX_KERNEL
|
|
unsigned char SISIOMEMTYPE *VideoMemoryAddress;
|
|
unsigned int VideoMemorySize;
|
|
#endif
|
|
SISIOADDRESS IOAddress;
|
|
SISIOADDRESS IOAddress2; /* For dual chip XGI volari */
|
|
|
|
#ifdef SIS_LINUX_KERNEL
|
|
SISIOADDRESS RelIO;
|
|
#endif
|
|
SISIOADDRESS SiS_P3c4;
|
|
SISIOADDRESS SiS_P3d4;
|
|
SISIOADDRESS SiS_P3c0;
|
|
SISIOADDRESS SiS_P3ce;
|
|
SISIOADDRESS SiS_P3c2;
|
|
SISIOADDRESS SiS_P3ca;
|
|
SISIOADDRESS SiS_P3c6;
|
|
SISIOADDRESS SiS_P3c7;
|
|
SISIOADDRESS SiS_P3c8;
|
|
SISIOADDRESS SiS_P3c9;
|
|
SISIOADDRESS SiS_P3cb;
|
|
SISIOADDRESS SiS_P3cc;
|
|
SISIOADDRESS SiS_P3cd;
|
|
SISIOADDRESS SiS_P3da;
|
|
SISIOADDRESS SiS_Part1Port;
|
|
SISIOADDRESS SiS_Part2Port;
|
|
SISIOADDRESS SiS_Part3Port;
|
|
SISIOADDRESS SiS_Part4Port;
|
|
SISIOADDRESS SiS_Part5Port;
|
|
SISIOADDRESS SiS_VidCapt;
|
|
SISIOADDRESS SiS_VidPlay;
|
|
unsigned short SiS_IF_DEF_LVDS;
|
|
unsigned short SiS_IF_DEF_CH70xx;
|
|
unsigned short SiS_IF_DEF_CONEX;
|
|
unsigned short SiS_IF_DEF_TRUMPION;
|
|
unsigned short SiS_IF_DEF_DSTN;
|
|
unsigned short SiS_IF_DEF_FSTN;
|
|
unsigned short SiS_SysFlags;
|
|
unsigned char SiS_VGAINFO;
|
|
#ifdef SIS_XORG_XF86
|
|
unsigned short SiS_CP1, SiS_CP2, SiS_CP3, SiS_CP4;
|
|
#endif
|
|
bool SiS_UseROM;
|
|
bool SiS_ROMNew;
|
|
bool SiS_XGIROM;
|
|
bool SiS_NeedRomModeData;
|
|
bool PanelSelfDetected;
|
|
bool DDCPortMixup;
|
|
int SiS_CHOverScan;
|
|
bool SiS_CHSOverScan;
|
|
bool SiS_ChSW;
|
|
bool SiS_UseLCDA;
|
|
int SiS_UseOEM;
|
|
unsigned int SiS_CustomT;
|
|
int SiS_UseWide, SiS_UseWideCRT2;
|
|
int SiS_TVBlue;
|
|
unsigned short SiS_Backup70xx;
|
|
bool HaveEMI;
|
|
bool HaveEMILCD;
|
|
bool OverruleEMI;
|
|
unsigned char EMI_30,EMI_31,EMI_32,EMI_33;
|
|
unsigned short SiS_EMIOffset;
|
|
unsigned short SiS_PWDOffset;
|
|
short PDC, PDCA;
|
|
unsigned char SiS_MyCR63;
|
|
unsigned short SiS_CRT1Mode;
|
|
unsigned short SiS_flag_clearbuffer;
|
|
int SiS_RAMType;
|
|
unsigned char SiS_ChannelAB;
|
|
unsigned char SiS_DataBusWidth;
|
|
unsigned short SiS_ModeType;
|
|
unsigned short SiS_VBInfo;
|
|
unsigned short SiS_TVMode;
|
|
unsigned short SiS_LCDResInfo;
|
|
unsigned short SiS_LCDTypeInfo;
|
|
unsigned short SiS_LCDInfo;
|
|
unsigned short SiS_LCDInfo661;
|
|
unsigned short SiS_VBType;
|
|
unsigned short SiS_VBExtInfo;
|
|
unsigned short SiS_YPbPr;
|
|
unsigned short SiS_SelectCRT2Rate;
|
|
unsigned short SiS_SetFlag;
|
|
unsigned short SiS_RVBHCFACT;
|
|
unsigned short SiS_RVBHCMAX;
|
|
unsigned short SiS_RVBHRS;
|
|
unsigned short SiS_RVBHRS2;
|
|
unsigned short SiS_VGAVT;
|
|
unsigned short SiS_VGAHT;
|
|
unsigned short SiS_VT;
|
|
unsigned short SiS_HT;
|
|
unsigned short SiS_VGAVDE;
|
|
unsigned short SiS_VGAHDE;
|
|
unsigned short SiS_VDE;
|
|
unsigned short SiS_HDE;
|
|
unsigned short SiS_NewFlickerMode;
|
|
unsigned short SiS_RY1COE;
|
|
unsigned short SiS_RY2COE;
|
|
unsigned short SiS_RY3COE;
|
|
unsigned short SiS_RY4COE;
|
|
unsigned short SiS_LCDHDES;
|
|
unsigned short SiS_LCDVDES;
|
|
SISIOADDRESS SiS_DDC_Port;
|
|
unsigned short SiS_DDC_Index;
|
|
unsigned short SiS_DDC_Data;
|
|
unsigned short SiS_DDC_NData;
|
|
unsigned short SiS_DDC_Clk;
|
|
unsigned short SiS_DDC_NClk;
|
|
unsigned short SiS_DDC_DeviceAddr;
|
|
unsigned short SiS_DDC_ReadAddr;
|
|
unsigned short SiS_DDC_SecAddr;
|
|
unsigned short SiS_ChrontelInit;
|
|
bool SiS_SensibleSR11;
|
|
unsigned short SiS661LCD2TableSize;
|
|
|
|
unsigned short SiS_PanelMinLVDS;
|
|
unsigned short SiS_PanelMin301;
|
|
|
|
const struct SiS_St *SiS_SModeIDTable;
|
|
const struct SiS_StandTable_S *SiS_StandTable;
|
|
const struct SiS_Ext *SiS_EModeIDTable;
|
|
const struct SiS_Ext2 *SiS_RefIndex;
|
|
const struct SiS_VBMode *SiS_VBModeIDTable;
|
|
const struct SiS_CRT1Table *SiS_CRT1Table;
|
|
const struct SiS_MCLKData *SiS_MCLKData_0;
|
|
const struct SiS_MCLKData *SiS_MCLKData_1;
|
|
struct SiS_VCLKData *SiS_VCLKData;
|
|
struct SiS_VBVCLKData *SiS_VBVCLKData;
|
|
const struct SiS_StResInfo_S *SiS_StResInfo;
|
|
const struct SiS_ModeResInfo_S *SiS_ModeResInfo;
|
|
|
|
const unsigned char *pSiS_OutputSelect;
|
|
const unsigned char *pSiS_SoftSetting;
|
|
|
|
const unsigned char *SiS_SR15;
|
|
|
|
const struct SiS_PanelDelayTbl *SiS_PanelDelayTbl;
|
|
const struct SiS_PanelDelayTbl *SiS_PanelDelayTblLVDS;
|
|
|
|
/* SiS bridge */
|
|
|
|
const struct SiS_LCDData *SiS_ExtLCD1024x768Data;
|
|
const struct SiS_LCDData *SiS_St2LCD1024x768Data;
|
|
const struct SiS_LCDData *SiS_LCD1280x720Data;
|
|
const struct SiS_LCDData *SiS_StLCD1280x768_2Data;
|
|
const struct SiS_LCDData *SiS_ExtLCD1280x768_2Data;
|
|
const struct SiS_LCDData *SiS_LCD1280x800Data;
|
|
const struct SiS_LCDData *SiS_LCD1280x800_2Data;
|
|
const struct SiS_LCDData *SiS_LCD1280x854Data;
|
|
const struct SiS_LCDData *SiS_LCD1280x960Data;
|
|
const struct SiS_LCDData *SiS_ExtLCD1280x1024Data;
|
|
const struct SiS_LCDData *SiS_St2LCD1280x1024Data;
|
|
const struct SiS_LCDData *SiS_StLCD1400x1050Data;
|
|
const struct SiS_LCDData *SiS_ExtLCD1400x1050Data;
|
|
const struct SiS_LCDData *SiS_StLCD1600x1200Data;
|
|
const struct SiS_LCDData *SiS_ExtLCD1600x1200Data;
|
|
const struct SiS_LCDData *SiS_LCD1680x1050Data;
|
|
const struct SiS_LCDData *SiS_NoScaleData;
|
|
const struct SiS_TVData *SiS_StPALData;
|
|
const struct SiS_TVData *SiS_ExtPALData;
|
|
const struct SiS_TVData *SiS_StNTSCData;
|
|
const struct SiS_TVData *SiS_ExtNTSCData;
|
|
const struct SiS_TVData *SiS_St1HiTVData;
|
|
const struct SiS_TVData *SiS_St2HiTVData;
|
|
const struct SiS_TVData *SiS_ExtHiTVData;
|
|
const struct SiS_TVData *SiS_St525iData;
|
|
const struct SiS_TVData *SiS_St525pData;
|
|
const struct SiS_TVData *SiS_St750pData;
|
|
const struct SiS_TVData *SiS_Ext525iData;
|
|
const struct SiS_TVData *SiS_Ext525pData;
|
|
const struct SiS_TVData *SiS_Ext750pData;
|
|
const unsigned char *SiS_NTSCTiming;
|
|
const unsigned char *SiS_PALTiming;
|
|
const unsigned char *SiS_HiTVExtTiming;
|
|
const unsigned char *SiS_HiTVSt1Timing;
|
|
const unsigned char *SiS_HiTVSt2Timing;
|
|
const unsigned char *SiS_HiTVGroup3Data;
|
|
const unsigned char *SiS_HiTVGroup3Simu;
|
|
#if 0
|
|
const unsigned char *SiS_HiTVTextTiming;
|
|
const unsigned char *SiS_HiTVGroup3Text;
|
|
#endif
|
|
|
|
const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_1;
|
|
const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_2;
|
|
const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_3;
|
|
|
|
/* LVDS, Chrontel */
|
|
|
|
const struct SiS_LVDSData *SiS_LVDS320x240Data_1;
|
|
const struct SiS_LVDSData *SiS_LVDS320x240Data_2;
|
|
const struct SiS_LVDSData *SiS_LVDS640x480Data_1;
|
|
const struct SiS_LVDSData *SiS_LVDS800x600Data_1;
|
|
const struct SiS_LVDSData *SiS_LVDS1024x600Data_1;
|
|
const struct SiS_LVDSData *SiS_LVDS1024x768Data_1;
|
|
const struct SiS_LVDSData *SiS_LVDSBARCO1366Data_1;
|
|
const struct SiS_LVDSData *SiS_LVDSBARCO1366Data_2;
|
|
const struct SiS_LVDSData *SiS_LVDSBARCO1024Data_1;
|
|
const struct SiS_LVDSData *SiS_LVDS848x480Data_1;
|
|
const struct SiS_LVDSData *SiS_LVDS848x480Data_2;
|
|
const struct SiS_LVDSData *SiS_CHTVUNTSCData;
|
|
const struct SiS_LVDSData *SiS_CHTVONTSCData;
|
|
const struct SiS_LVDSData *SiS_CHTVUPALData;
|
|
const struct SiS_LVDSData *SiS_CHTVOPALData;
|
|
const struct SiS_LVDSData *SiS_CHTVUPALMData;
|
|
const struct SiS_LVDSData *SiS_CHTVOPALMData;
|
|
const struct SiS_LVDSData *SiS_CHTVUPALNData;
|
|
const struct SiS_LVDSData *SiS_CHTVOPALNData;
|
|
const struct SiS_LVDSData *SiS_CHTVSOPALData;
|
|
|
|
const struct SiS_LVDSDes *SiS_PanelType04_1a;
|
|
const struct SiS_LVDSDes *SiS_PanelType04_2a;
|
|
const struct SiS_LVDSDes *SiS_PanelType04_1b;
|
|
const struct SiS_LVDSDes *SiS_PanelType04_2b;
|
|
|
|
const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_1;
|
|
const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_2;
|
|
const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_2_H;
|
|
const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_3;
|
|
const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_3_H;
|
|
const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1640x480_1;
|
|
const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1640x480_1_H;
|
|
const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1UNTSC;
|
|
const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1ONTSC;
|
|
const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1UPAL;
|
|
const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1OPAL;
|
|
const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1SOPAL;
|
|
|
|
const struct SiS_CHTVRegData *SiS_CHTVReg_UNTSC;
|
|
const struct SiS_CHTVRegData *SiS_CHTVReg_ONTSC;
|
|
const struct SiS_CHTVRegData *SiS_CHTVReg_UPAL;
|
|
const struct SiS_CHTVRegData *SiS_CHTVReg_OPAL;
|
|
const struct SiS_CHTVRegData *SiS_CHTVReg_UPALM;
|
|
const struct SiS_CHTVRegData *SiS_CHTVReg_OPALM;
|
|
const struct SiS_CHTVRegData *SiS_CHTVReg_UPALN;
|
|
const struct SiS_CHTVRegData *SiS_CHTVReg_OPALN;
|
|
const struct SiS_CHTVRegData *SiS_CHTVReg_SOPAL;
|
|
|
|
const unsigned char *SiS_CHTVVCLKUNTSC;
|
|
const unsigned char *SiS_CHTVVCLKONTSC;
|
|
const unsigned char *SiS_CHTVVCLKUPAL;
|
|
const unsigned char *SiS_CHTVVCLKOPAL;
|
|
const unsigned char *SiS_CHTVVCLKUPALM;
|
|
const unsigned char *SiS_CHTVVCLKOPALM;
|
|
const unsigned char *SiS_CHTVVCLKUPALN;
|
|
const unsigned char *SiS_CHTVVCLKOPALN;
|
|
const unsigned char *SiS_CHTVVCLKSOPAL;
|
|
|
|
unsigned short PanelXRes, PanelHT;
|
|
unsigned short PanelYRes, PanelVT;
|
|
unsigned short PanelHRS, PanelHRE;
|
|
unsigned short PanelVRS, PanelVRE;
|
|
unsigned short PanelVCLKIdx300;
|
|
unsigned short PanelVCLKIdx315;
|
|
bool Alternate1600x1200;
|
|
|
|
bool UseCustomMode;
|
|
bool CRT1UsesCustomMode;
|
|
unsigned short CHDisplay;
|
|
unsigned short CHSyncStart;
|
|
unsigned short CHSyncEnd;
|
|
unsigned short CHTotal;
|
|
unsigned short CHBlankStart;
|
|
unsigned short CHBlankEnd;
|
|
unsigned short CVDisplay;
|
|
unsigned short CVSyncStart;
|
|
unsigned short CVSyncEnd;
|
|
unsigned short CVTotal;
|
|
unsigned short CVBlankStart;
|
|
unsigned short CVBlankEnd;
|
|
unsigned int CDClock;
|
|
unsigned int CFlags;
|
|
unsigned char CCRT1CRTC[17];
|
|
unsigned char CSR2B;
|
|
unsigned char CSR2C;
|
|
unsigned short CSRClock;
|
|
unsigned short CSRClock_CRT1;
|
|
unsigned short CModeFlag;
|
|
unsigned short CModeFlag_CRT1;
|
|
unsigned short CInfoFlag;
|
|
|
|
int LVDSHL;
|
|
|
|
bool Backup;
|
|
unsigned char Backup_Mode;
|
|
unsigned char Backup_14;
|
|
unsigned char Backup_15;
|
|
unsigned char Backup_16;
|
|
unsigned char Backup_17;
|
|
unsigned char Backup_18;
|
|
unsigned char Backup_19;
|
|
unsigned char Backup_1a;
|
|
unsigned char Backup_1b;
|
|
unsigned char Backup_1c;
|
|
unsigned char Backup_1d;
|
|
|
|
unsigned char Init_P4_0E;
|
|
|
|
int UsePanelScaler;
|
|
int CenterScreen;
|
|
|
|
unsigned short CP_Vendor, CP_Product;
|
|
bool CP_HaveCustomData;
|
|
int CP_PreferredX, CP_PreferredY, CP_PreferredIndex;
|
|
int CP_MaxX, CP_MaxY, CP_MaxClock;
|
|
unsigned char CP_PrefSR2B, CP_PrefSR2C;
|
|
unsigned short CP_PrefClock;
|
|
bool CP_Supports64048075;
|
|
int CP_HDisplay[7], CP_VDisplay[7]; /* For Custom LCD panel dimensions */
|
|
int CP_HTotal[7], CP_VTotal[7];
|
|
int CP_HSyncStart[7], CP_VSyncStart[7];
|
|
int CP_HSyncEnd[7], CP_VSyncEnd[7];
|
|
int CP_HBlankStart[7], CP_VBlankStart[7];
|
|
int CP_HBlankEnd[7], CP_VBlankEnd[7];
|
|
int CP_Clock[7];
|
|
bool CP_DataValid[7];
|
|
bool CP_HSync_P[7], CP_VSync_P[7], CP_SyncValid[7];
|
|
};
|
|
|
|
#endif
|
|
|