diff options
author | Kaleb Keithley <kaleb@freedesktop.org> | 2003-12-20 00:28:29 +0000 |
---|---|---|
committer | Kaleb Keithley <kaleb@freedesktop.org> | 2003-12-20 00:28:29 +0000 |
commit | 4d1e14ccd792a43e6b8c63319b0d3060042afc30 (patch) | |
tree | 1be6ca0f9760765d337be34b652d63fb54345f48 | |
parent | bccafebfdd918e2b2d028cfa3eed8d8407e4989a (diff) |
merge XFree86 RC2 (4.3.99.902) from vendor branchXEVIE-BASE
-rw-r--r-- | src/init.c | 6 | ||||
-rw-r--r-- | src/init.h | 4 | ||||
-rw-r--r-- | src/init301.c | 87 | ||||
-rw-r--r-- | src/init301.h | 4 | ||||
-rw-r--r-- | src/oem310.h | 42 | ||||
-rw-r--r-- | src/sis.h | 16 | ||||
-rw-r--r-- | src/sis_driver.c | 116 | ||||
-rw-r--r-- | src/sis_driver.h | 13 | ||||
-rw-r--r-- | src/sis_opt.c | 6 | ||||
-rw-r--r-- | src/sis_vb.c | 14 | ||||
-rw-r--r-- | src/sis_video.c | 26 | ||||
-rw-r--r-- | src/vgatypes.h | 7 | ||||
-rw-r--r-- | src/vstruct.h | 7 |
13 files changed, 236 insertions, 112 deletions
@@ -1,5 +1,5 @@ -/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/init.c,v 1.39 2003/12/02 16:44:36 twini Exp $ */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/init.c,v 1.39 2003/12/02 16:44:36 twini Exp $ */ +/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/init.c,v 1.1.4.2 2003/12/06 13:24:25 kaleb Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/init.c,v 1.40 2003/12/03 23:07:47 twini Exp $ */ /* * Mode initializing code (CRT1 section) for * for SiS 300/305/540/630/730 and @@ -888,7 +888,7 @@ SiS_GetModeID_LCD(int VGAEngine, ULONG VBFlags, int HDisplay, int VDisplay, if(VDisplay == 1200) ModeIndex = ModeIndex_1600x1200[Depth]; } break; - } + } } else if(VBFlags & VB_SISBRIDGE) { @@ -1,5 +1,5 @@ -/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/init.h,v 1.37 2003/12/02 12:15:30 twini Exp $ */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/init.h,v 1.37 2003/12/02 12:15:30 twini Exp $ */ +/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/init.h,v 1.1.4.2 2003/12/06 13:24:25 kaleb Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/init.h,v 1.38 2003/12/16 17:59:08 twini Exp $ */ /* * Data and prototypes for init.c * diff --git a/src/init301.c b/src/init301.c index cd54467..c569ee4 100644 --- a/src/init301.c +++ b/src/init301.c @@ -1,5 +1,5 @@ -/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/init301.c,v 1.58 2003/12/02 16:44:37 twini Exp $ */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/init301.c,v 1.58 2003/12/02 16:44:37 twini Exp $ */ +/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/init301.c,v 1.1.4.2 2003/12/06 13:24:25 kaleb Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/init301.c,v 1.59 2003/12/16 17:35:05 twini Exp $ */ /* * Mode initializing code (CRT2 section) * for SiS 300/305/540/630/730 and @@ -46,8 +46,9 @@ #define SET_EMI /* 302LV/ELV: Set EMI values */ #endif -#define COMPAL_HACK /* Needed for compal 1400x1050 (EMI) */ +#define COMPAL_HACK /* Needed for Compal 1400x1050 (EMI) */ #define COMPAQ_HACK /* Needed for Inventec/Compaq 1280x1024 (EMI) */ +#define ASUS_HACK /* Needed for Asus A2H 1024x768 (EMI) */ #include "init301.h" @@ -262,6 +263,8 @@ SiS_AdjustCRT2Rate(SiS_Private *SiS_Pr, USHORT ModeNo, USHORT ModeIdIndex, if(SiS_Pr->SiS_VBType & VB_SIS301B302B) { if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { if(tempbx == 0x2e) { /* 640x480 */ + tempax |= Support64048060Hz; +#if 0 /* DDC info not relyable (eg Sony) */ if(SiS_Pr->SiS_LCDResInfo == SiS_Pr->SiS_Panel1280x768) { tempax |= Support64048060Hz; } else if(SiS_Pr->SiS_LCDResInfo == SiS_Pr->SiS_PanelCustom) { @@ -269,6 +272,7 @@ SiS_AdjustCRT2Rate(SiS_Private *SiS_Pr, USHORT ModeNo, USHORT ModeIdIndex, tempax |= Support64048060Hz; } } +#endif } } } @@ -484,10 +488,10 @@ SiS_CR36BIOSWord23d(SiS_Private *SiS_Pr, PSIS_HW_INFO HwInfo) void SiS_DDC2Delay(SiS_Private *SiS_Pr, USHORT delaytime) { - USHORT i; + USHORT i, j; for(i=0; i<delaytime; i++) { - SiS_GetReg(SiS_Pr->SiS_P3c4,0x05); + j += SiS_GetReg(SiS_Pr->SiS_P3c4,0x05); } } @@ -613,7 +617,11 @@ SiS_PanelDelay(SiS_Private *SiS_Pr, PSIS_HW_INFO HwInfo, USHORT DelayTime) } else { Delay = SiS_Pr->SiS_PanelDelayTbl[DelayIndex].timer[1]; } - SiS_DDC2Delay(SiS_Pr, Delay << 2); + Delay <<= 2; + if(SiS_Pr->SiS_VBType & (VB_SIS302LV | VB_SIS302ELV)) { + Delay <<= 5; + } + SiS_DDC2Delay(SiS_Pr, Delay); } @@ -2212,8 +2220,8 @@ SiS_SetCRT2ModeRegs(SiS_Private *SiS_Pr, USHORT ModeNo, USHORT ModeIdIndex, /* The following two are responsible for eventually wrong colors * in TV output. The DH (VB_NoLCD) conditions are unknown; the - * b0 was found in some 651 machine (Pim); the b1 version in a - * 650 box (Jake). What is the criteria? + * b0 was found in some 651 machine (Pim; P4_23=0xe5); the b1 version + * in a 650 box (Jake). What is the criteria? */ if((IS_SIS740) || (HwInfo->jChipType >= SIS_661)) { @@ -3345,6 +3353,12 @@ SiS_GetLVDSDesPtrA(SiS_Private *SiS_Pr, USHORT ModeNo, USHORT ModeIdIndex, if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) tempbx++; } } + if(SiS_Pr->SiS_CustomT == CUT_ASUSA2H_2) { + if(SiS_Pr->SiS_LCDResInfo == SiS_Pr->SiS_Panel1024x768) { + tempbx = 86; + if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) tempbx++; + } + } if(ModeNo <= 0x13) tempal = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_CRT2CRTC; @@ -3394,6 +3408,8 @@ SiS_GetLVDSDesData(SiS_Private *SiS_Pr, USHORT ModeNo,USHORT ModeIdIndex, case 83: PanelDesPtr = (SiS_LVDSDesStruct *)Uniwill1024x768Des_2; break; case 84: PanelDesPtr = (SiS_LVDSDesStruct *)Compaq1280x1024Des_1; break; case 85: PanelDesPtr = (SiS_LVDSDesStruct *)Compaq1280x1024Des_2; break; + case 86: PanelDesPtr = (SiS_LVDSDesStruct *)Asus1024x768Des_1; break; /* custom */ + case 87: PanelDesPtr = (SiS_LVDSDesStruct *)Asus1024x768Des_2; break; default: PanelDesPtr = SiS_Pr->LVDS1024x768Des_1; break; } #endif @@ -3737,7 +3753,7 @@ SiS_DisableBridge(SiS_Private *SiS_Pr, PSIS_HW_INFO HwInfo) if(SiS_Pr->SiS_VBType & (VB_SIS302LV | VB_SIS302ELV)) { if( (SiS_IsVAMode(SiS_Pr, HwInfo)) || (SiS_CRT2IsLCD(SiS_Pr, HwInfo)) ) { - SiS_PanelDelayLoop(SiS_Pr, HwInfo, 3, 10); + SiS_PanelDelayLoop(SiS_Pr, HwInfo, 3, 20); } } @@ -4175,6 +4191,9 @@ SiS_EnableBridge(SiS_Private *SiS_Pr, PSIS_HW_INFO HwInfo) (SiS_Pr->SiS_CustomT != CUT_CLEVO1400)) { SiS_PanelDelayLoop(SiS_Pr, HwInfo, 3, 2); SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x26,0x02); + if(SiS_Pr->SiS_VBType & (VB_SIS302LV | VB_SIS302ELV)) { + SiS_GenericDelay(SiS_Pr, 0x4500); + } SiS_PanelDelayLoop(SiS_Pr, HwInfo, 3, 2); } else { SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x26,0x02); @@ -4304,6 +4323,7 @@ SiS_EnableBridge(SiS_Private *SiS_Pr, PSIS_HW_INFO HwInfo) /* Clevo 1024x768: 0x0d, 0x70, 0x40 (if type == 3) YES (1.10.8y; CR36=?2) */ /* Clevo 1024x768: 0x05, 0x60, 0x33 (if type != 3) YES (1.10.8y; CR36=?2) */ /* Asus 1024x768: ? ? (1.10.8o; CR36=?2) */ + /* Asus 1024x768: 0x08, 0x10, 0x3c (problematic) YES (1.10.8q; CR36=22) */ if(SiS_Pr->HaveEMI) { r30 = SiS_Pr->EMI_30; @@ -4363,37 +4383,56 @@ SiS_EnableBridge(SiS_Private *SiS_Pr, PSIS_HW_INFO HwInfo) } } -#ifdef COMPAL_HACK /* BIOS values don't work so well */ + /* BIOS values don't work so well sometimes */ if(!SiS_Pr->OverruleEMI) { +#ifdef COMPAL_HACK if(SiS_Pr->SiS_CustomT == CUT_COMPAL1400_2) { if((cr36 & 0x0f) == 0x09) { r30 = 0x60; r31 = 0x05; r32 = 0x60; r33 = 0x00; } } - } #endif #ifdef COMPAQ_HACK - if(!SiS_Pr->OverruleEMI) { if(SiS_Pr->SiS_CustomT == CUT_COMPAQ1280) { if((cr36 & 0x0f) == 0x03) { - r30 = 0x20; r31 = 0x12; r32 = 0xd0; r33 = 0x6b; /* rev 1 */ - /* r30 = 0x60; r31 = 0x12; r32 = 0xd0; r33 = 0x6b; */ /* rev 2 */ - /* r30 = 0x20; r31 = 0x05; r32 = 0x60; r33 = 0x00; */ /* rev 3 */ - /* r30 = 0x60; r31 = 0x05; r32 = 0x60; r33 = 0x00; */ /* rev 4 */ + r30 = 0x20; r31 = 0x12; r32 = 0xd0; r33 = 0x6b; /* rev 1 */ + } + } +#endif +#ifdef ASUS_HACK + if(SiS_Pr->SiS_CustomT == CUT_ASUSA2H_2) { + if((cr36 & 0x0f) == 0x02) { + /* r30 = 0x60; r31 = 0x05; r32 = 0x60; r33 = 0x33; */ /* rev 2 */ + /* r30 = 0x20; r31 = 0x05; r32 = 0x60; r33 = 0x33; */ /* rev 3 */ + /* r30 = 0x60; r31 = 0x0d; r32 = 0x70; r33 = 0x40; */ /* rev 4 */ + /* r30 = 0x20; r31 = 0x0d; r32 = 0x70; r33 = 0x40; */ /* rev 5 */ } } - } #endif - SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x30,0x20); + } + if(!(SiS_Pr->OverruleEMI && (!r30) && (!r31) && (!r32) && (!r33))) { + SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x30,0x20); + } SiS_SetReg(SiS_Pr->SiS_Part4Port,0x31,r31); SiS_SetReg(SiS_Pr->SiS_Part4Port,0x32,r32); SiS_SetReg(SiS_Pr->SiS_Part4Port,0x33,r33); - SiS_SetReg(SiS_Pr->SiS_Part4Port,0x34,0x10); + if(!(SiS_Pr->OverruleEMI && (!r30) && (!r31) && (!r32) && (!r33))) { + SiS_SetReg(SiS_Pr->SiS_Part4Port,0x34,0x10); + } else { + SiS_SetReg(SiS_Pr->SiS_Part4Port,0x34,0x00); + } if( (SiS_IsVAMode(SiS_Pr,HwInfo)) || (SiS_CRT2IsLCD(SiS_Pr, HwInfo)) ) { if(r30 & 0x40) { SiS_PanelDelayLoop(SiS_Pr, HwInfo, 3, 5); - SiS_WaitVBRetrace(SiS_Pr,HwInfo); + if(delaylong) { + SiS_PanelDelayLoop(SiS_Pr, HwInfo, 3, 5); + delaylong = FALSE; + } + SiS_WaitVBRetrace(SiS_Pr,HwInfo); + if(SiS_Pr->SiS_CustomT == CUT_ASUSA2H_2) { + SiS_GenericDelay(SiS_Pr, 0x500); + } SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x30,0x40); } } @@ -4437,6 +4476,9 @@ SiS_EnableBridge(SiS_Private *SiS_Pr, PSIS_HW_INFO HwInfo) SiS_PanelDelayLoop(SiS_Pr, HwInfo, 3, 10); } SiS_WaitVBRetrace(SiS_Pr,HwInfo); + if(SiS_Pr->SiS_VBType & (VB_SIS302LV | VB_SIS302ELV)) { + SiS_GenericDelay(SiS_Pr, 0x500); + } SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x26,0x01); } } @@ -6978,6 +7020,10 @@ SiS_GetCRT2Part2Ptr(SiS_Private *SiS_Pr,USHORT ModeNo,USHORT ModeIdIndex, else if(SiS_Pr->SiS_SetFlag & LCDVESATiming) tempbx = 105; } } + } else if(SiS_Pr->SiS_CustomT == CUT_ASUSA2H_2) { + if(SiS_Pr->SiS_LCDResInfo == SiS_Pr->SiS_Panel1024x768) { + if(SiS_Pr->SiS_SetFlag & LCDVESATiming) tempbx = 106; + } } *CRT2Index = tempbx; @@ -7748,6 +7794,7 @@ SiS_SetGroup2(SiS_Private *SiS_Pr, USHORT ModeNo, USHORT ModeIdIndex,USHORT Refr case 103: CRT2Part2Ptr = (SiS_Part2PortTblStruct *)SiS310_CRT2Part2_Clevo1024x768_1; break; /* Custom */ case 104: CRT2Part2Ptr = (SiS_Part2PortTblStruct *)SiS310_CRT2Part2_Clevo1024x768_2; break; case 105: CRT2Part2Ptr = (SiS_Part2PortTblStruct *)SiS310_CRT2Part2_Clevo1024x768_3; break; + case 106: CRT2Part2Ptr = (SiS_Part2PortTblStruct *)SiS310_CRT2Part2_Asus1024x768_3; break; default: CRT2Part2Ptr = SiS_Pr->SiS_CRT2Part2_1024x768_3; break; } diff --git a/src/init301.h b/src/init301.h index be3c792..cba50c5 100644 --- a/src/init301.h +++ b/src/init301.h @@ -1,5 +1,5 @@ -/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/vgatypes.h,v 1.17 2003/12/02 12:15:33 twini Exp $ */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/init301.h,v 1.35 2003/12/02 12:15:32 twini Exp $ */ +/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/init301.h,v 1.1.4.2 2003/12/06 13:24:25 kaleb Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/init301.h,v 1.36 2003/12/16 17:59:08 twini Exp $ */ /* * Data and prototypes for init301.c * diff --git a/src/oem310.h b/src/oem310.h index cc5e527..4f516b7 100644 --- a/src/oem310.h +++ b/src/oem310.h @@ -1,4 +1,5 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/oem310.h,v 1.18 2003/10/30 18:53:42 twini Exp $ */ +/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/oem310.h,v 1.19 2003/12/16 17:35:06 twini Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/oem310.h,v 1.19 2003/12/16 17:35:06 twini Exp $ */ /* * OEM Data for 315/330 series * @@ -561,6 +562,45 @@ static const SiS_LVDSDesStruct Clevo1024x768Des_2[] = { 0, 0 } }; +/* Asus A2xxxH _2 */ + +static const SiS_Part2PortTblStruct SiS310_CRT2Part2_Asus1024x768_3[] = +{ + {{0x25,0x13,0xc9,0x25,0xff,0x59,0x45,0x09,0x07,0xf9,0x09,0x24}}, + {{0x2c,0x13,0x9a,0x25,0xff,0x59,0x45,0x09,0x07,0xf9,0x09,0x24}}, + {{0x25,0x13,0xc9,0x25,0xff,0x59,0x45,0x09,0x07,0xf9,0x09,0x24}}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}, + {{0x38,0x13,0x13,0x25,0xff,0x59,0x45,0x09,0x07,0xf9,0x09,0x24}}, + {{0x38,0x13,0x16,0x25,0xff,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, + {{0x36,0x13,0x13,0x25,0xff,0x5a,0x45,0x0a,0x07,0xfa,0x0a,0x24}}, + {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}, + {{0x25,0x13,0xc9,0x25,0xff,0x59,0x45,0x09,0x07,0xf9,0x09,0x24}} +}; + +static const SiS_LVDSDesStruct Asus1024x768Des_1[] = +{ + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 }, + { 0, 0 } +}; + +static const SiS_LVDSDesStruct Asus1024x768Des_2[] = +{ + { 1184, 622 }, + { 1184, 597 }, + { 1184, 622 }, + { 1184, 597 }, + { 1152, 622 }, + { 1232, 722 }, + { 0, 0 } +}; + +/* CRT2 data is std */ + /* Uniwill N243S9, ECS A928 */ static const SiS_LVDSDesStruct Uniwill1024x768Des_1[] = @@ -1,5 +1,5 @@ -/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/sis.h,v 1.1.4.2 2003/12/06 13:24:25 kaleb Exp $ */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis.h,v 1.93 2003/12/02 12:15:32 twini Exp $ */ +/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/sis.h,v 1.1.4.3 2003/12/18 19:29:14 kaleb Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis.h,v 1.99 2003/12/16 17:45:19 twini Exp $ */ /* * Main global data and definitions * @@ -25,8 +25,8 @@ * * Authors: * - * ? * Thomas Winischhofer <thomas@winischhofer.net> + * ? * */ #ifndef _SIS_H @@ -37,7 +37,7 @@ #define SISDRIVERVERSIONYEAR 3 #define SISDRIVERVERSIONMONTH 12 -#define SISDRIVERVERSIONDAY 2 +#define SISDRIVERVERSIONDAY 15 #define SISDRIVERREVISION 1 #define SISDRIVERIVERSION (SISDRIVERVERSIONYEAR << 16) | (SISDRIVERVERSIONMONTH << 8) \ @@ -517,6 +517,7 @@ typedef struct { unsigned char *RenderAccelArray; unsigned char * FbBase1; unsigned long OnScreenSize1; + unsigned char OldMode; #ifdef SIS_CP SIS_CP_H_ENT #endif @@ -593,7 +594,8 @@ typedef struct { int forceCRT1; Bool CRT1changed; unsigned char oldCR17, oldCR63, oldSR1F; - unsigned char oldCR32; + unsigned char oldCR32, oldCR36, oldCR37; + unsigned char myCR32, myCR36, myCR37; unsigned char newCR32; unsigned long VBFlags; /* Video bridge configuration */ unsigned long VBFlags_backup; /* Backup for SlaveMode-modes */ @@ -796,7 +798,7 @@ typedef struct { unsigned char sisfblcda; int sisfbscalelcd; unsigned long sisfbspecialtiming; - BOOL sisfb_haveemi; + BOOL sisfb_haveemi, sisfb_haveemilcd; unsigned char sisfb_emi30,sisfb_emi31,sisfb_emi32,sisfb_emi33; int EMI; int NoYV12; /* Disable Xv YV12 support (old series) */ @@ -1063,7 +1065,7 @@ extern void SiS_SetTVyposoffset(ScrnInfoPtr pScrn, int val); extern void SiS_SetTVxscale(ScrnInfoPtr pScrn, int val); extern void SiS_SetTVyscale(ScrnInfoPtr pScrn, int val); extern Bool SISSwitchCRT2Type(ScrnInfoPtr pScrn, unsigned long newvbflags); -extern Bool SISCheckModeIndexForCRT2Type(ScrnInfoPtr pScrn, unsigned short cond, +extern int SISCheckModeIndexForCRT2Type(ScrnInfoPtr pScrn, unsigned short cond, unsigned short index, Bool quiet); extern Bool SISSwitchCRT1Status(ScrnInfoPtr pScrn, int onoff); extern int SiS_GetCHTVlumabandwidthcvbs(ScrnInfoPtr pScrn); diff --git a/src/sis_driver.c b/src/sis_driver.c index b20ca8c..f9ae5af 100644 --- a/src/sis_driver.c +++ b/src/sis_driver.c @@ -1,5 +1,5 @@ -/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c,v 1.1.4.2 2003/12/06 13:24:25 kaleb Exp $ */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c,v 1.160 2003/12/02 12:15:32 twini Exp $ */ +/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c,v 1.1.4.3 2003/12/18 19:29:14 kaleb Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c,v 1.166 2003/12/16 17:59:08 twini Exp $ */ /* * Copyright 2001, 2002, 2003 by Thomas Winischhofer, Vienna, Austria. * @@ -1583,6 +1583,8 @@ SiSUpdateXineramaScreenInfo(ScrnInfoPtr pScrn1) /* Attention: Usage of RandR may lead into virtual X and Y values * actually smaller than our MetaModes! To avoid this, we calculate * the maxCRT fields here (and not somewhere else, like in CopyNLink) + * + * *** For now: RandR will be disabled if SiS pseudo-Xinerama is on */ if((pSiS->SiSXineramaVX != pScrn1->virtualX) || (pSiS->SiSXineramaVY != pScrn1->virtualY)) { @@ -2659,10 +2661,14 @@ SISPreInit(ScrnInfoPtr pScrn, int flags) pSiS->sisfbpdc = mysisfbinfo.sisfb_lcdpdc; if(sisfbversion >= 0x010618) { pSiS->sisfb_haveemi = mysisfbinfo.sisfb_haveemi ? TRUE : FALSE; + pSiS->sisfb_haveemilcd = TRUE; /* will match most cases */ pSiS->sisfb_emi30 = mysisfbinfo.sisfb_emi30; pSiS->sisfb_emi31 = mysisfbinfo.sisfb_emi31; pSiS->sisfb_emi32 = mysisfbinfo.sisfb_emi32; pSiS->sisfb_emi33 = mysisfbinfo.sisfb_emi33; + if(sisfbversion >= 0x010619) { + pSiS->sisfb_haveemilcd = mysisfbinfo.sisfb_haveemilcd ? TRUE : FALSE; + } } } } @@ -3649,10 +3655,15 @@ SISPreInit(ScrnInfoPtr pScrn, int flags) /* Backup VB connection and CRT1 on/off register */ if((pSiS->VGAEngine == SIS_300_VGA) || (pSiS->VGAEngine == SIS_315_VGA)) { - inSISIDXREG(SISCR, 0x32, pSiS->oldCR32); - inSISIDXREG(SISCR, 0x17, pSiS->oldCR17); - inSISIDXREG(SISCR, 0x63, pSiS->oldCR63); inSISIDXREG(SISSR, 0x1f, pSiS->oldSR1F); + inSISIDXREG(SISCR, 0x17, pSiS->oldCR17); + inSISIDXREG(SISCR, 0x32, pSiS->oldCR32); + inSISIDXREG(SISCR, 0x36, pSiS->oldCR36); + inSISIDXREG(SISCR, 0x37, pSiS->oldCR37); + if(pSiS->VGAEngine == SIS_315_VGA) { + inSISIDXREG(SISCR, 0x63, pSiS->oldCR63); + } + pSiS->postVBCR32 = pSiS->oldCR32; } @@ -3774,7 +3785,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags) SISCRT2PreInit(pScrn); /* Backup detected CRT2 devices */ - pSiS->detectedCRT2Devices = pSiS->VBFlags & (CRT2_LCD | CRT2_TV | CRT2_VGA | TV_AVIDEO | TV_SVIDEO | TV_SCART); + pSiS->detectedCRT2Devices = pSiS->VBFlags & (CRT2_LCD|CRT2_TV|CRT2_VGA|TV_AVIDEO|TV_SVIDEO|TV_SCART); /* Setup SD flags */ pSiS->SiS_SD_Flags |= SiS_SD_ADDLSUPFLAG; @@ -4189,8 +4200,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags) pSiS->VBFlags |= (VB_DISPMODE_SINGLE | DISPTYPE_CRT1); } - if((pSiS->VGAEngine == SIS_315_VGA) || - (pSiS->VGAEngine == SIS_300_VGA) ) { + if((pSiS->VGAEngine == SIS_315_VGA) || (pSiS->VGAEngine == SIS_300_VGA)) { if((!pSiS->NoXvideo) && (!pSiS->hasTwoOverlays)) { xf86DrvMsg(pScrn->scrnIndex, from, "Using Xv overlay by default on CRT%d\n", @@ -4206,6 +4216,13 @@ SISPreInit(ScrnInfoPtr pScrn, int flags) /* VBFlags are initialized now. Back them up for SlaveMode modes. */ pSiS->VBFlags_backup = pSiS->VBFlags; + /* Backup CR32,36,37 (in order to write them back after a VT switch) */ + if((pSiS->VGAEngine == SIS_300_VGA) || (pSiS->VGAEngine == SIS_315_VGA)) { + inSISIDXREG(SISCR,0x32,pSiS->myCR32); + inSISIDXREG(SISCR,0x36,pSiS->myCR36); + inSISIDXREG(SISCR,0x37,pSiS->myCR37); + } + /* Find out about paneldelaycompensation and evaluate option */ #ifdef SISDUALHEAD if((!pSiS->DualHeadMode) || (!pSiS->SecondHead)) { @@ -4349,7 +4366,8 @@ SISPreInit(ScrnInfoPtr pScrn, int flags) pSiS->SiS_Pr->EMI_31 = pSiS->sisfb_emi31; pSiS->SiS_Pr->EMI_32 = pSiS->sisfb_emi32; pSiS->SiS_Pr->EMI_33 = pSiS->sisfb_emi33; - pSiS->SiS_Pr->HaveEMI = pSiS->SiS_Pr->HaveEMILCD = TRUE; + pSiS->SiS_Pr->HaveEMI = TRUE; + if(pSiS->sisfb_haveemilcd) pSiS->SiS_Pr->HaveEMILCD = TRUE; pSiS->SiS_Pr->OverruleEMI = FALSE; } else { inSISIDXREG(SISPART4, 0x30, pSiS->SiS_Pr->EMI_30); @@ -5466,10 +5484,12 @@ SISSave(ScrnInfoPtr pScrn) /* "Save" these again as they may have been changed prior to SISSave() call */ if((pSiS->VGAEngine == SIS_300_VGA) || (pSiS->VGAEngine == SIS_315_VGA)) { + sisReg->sisRegs3C4[0x1f] = pSiS->oldSR1F; sisReg->sisRegs3D4[0x17] = pSiS->oldCR17; if(vgaReg->numCRTC >= 0x17) vgaReg->CRTC[0x17] = pSiS->oldCR17; sisReg->sisRegs3D4[0x32] = pSiS->oldCR32; - sisReg->sisRegs3C4[0x1f] = pSiS->oldSR1F; + sisReg->sisRegs3D4[0x36] = pSiS->oldCR36; + sisReg->sisRegs3D4[0x37] = pSiS->oldCR37; if(pSiS->VGAEngine == SIS_315_VGA) { sisReg->sisRegs3D4[0x63] = pSiS->oldCR63; } @@ -6066,7 +6086,7 @@ SISRestore(ScrnInfoPtr pScrn) /* First, restore CRT1 on/off and VB connection registers */ outSISIDXREG(SISCR, 0x32, pSiS->oldCR32); if(!(pSiS->oldCR17 & 0x80)) { /* CRT1 was off */ - if(!(SiSBridgeIsInSlaveMode(pScrn))) { /* Bridge is NOT in SlaveMode now -> do it */ + if(!(SiSBridgeIsInSlaveMode(pScrn))) { /* Bridge is NOT in SlaveMode now -> do it */ doit = TRUE; } else { doitlater = TRUE; @@ -6466,8 +6486,8 @@ SISScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) /* Read 0:449 which the BIOS sets to the current mode number * Unfortunately, this not reliable since the int10 emulation * does not change this. So if we call the VBE later, this - * byte won't be touched. (which is why we set this manually - * then) + * byte won't be touched (which is why we set this manually + * then). */ unsigned char myoldmode = SiS_GetSetModeID(pScrn,0xFF); unsigned char cr30, cr31; @@ -6477,7 +6497,6 @@ SISScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) * bridge... */ inSISIDXREG(SISCR, 0x34, pSiS->OldMode); - pSiS->OldMode &= 0x7f; inSISIDXREG(SISCR, 0x30, cr30); inSISIDXREG(SISCR, 0x31, cr31); @@ -6495,12 +6514,15 @@ SISScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) * two is valid). */ if(pSiS->OldMode > 0x7f) { - xf86DrvMsg(pScrn->scrnIndex, X_PROBED, - "Previous video mode (%02x) invalid, using BIOS scratch (%02x)\n", - pSiS->OldMode, myoldmode); pSiS->OldMode = myoldmode; } } +#ifdef SISDUALHEAD + if(pSiS->DualHeadMode) { + if(!pSiS->SecondHead) pSiSEnt->OldMode = pSiS->OldMode; + else pSiS->OldMode = pSiSEnt->OldMode; + } +#endif } /* Initialise the first mode */ @@ -6829,6 +6851,11 @@ SISScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) SiSnoXineramaExtension = FALSE; SiSXineramaExtensionInit(pScrn); if(!SiSnoXineramaExtension) { +#if XF86_VERSION_CURRENT >= XF86_VERSION_NUMERIC(4,3,0,0,0) + xf86DisableRandR(); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "SiS Pseudo-Xinerama enabled, RandR disabled\n"); +#endif pSiS->SiS_SD_Flags |= SiS_SD_PSEUDOXINERAMA; } } @@ -7008,24 +7035,22 @@ SISSwitchCRT2Type(ScrnInfoPtr pScrn, unsigned long newvbflags) return TRUE; } -Bool +int SISCheckModeIndexForCRT2Type(ScrnInfoPtr pScrn, unsigned short cond, unsigned short index, Bool quiet) { SISPtr pSiS = SISPTR(pScrn); BOOLEAN hcm = pSiS->HaveCustomModes; DisplayModePtr mode = pScrn->modes, mastermode; - int i; + int i, result = 0; unsigned long vbflags = pSiS->VBFlags; - /* This has been extended to handle LCDA as well */ + /* Not only CRT2, but also LCDA */ - /* Only on 300 and 315/330 series */ - if(pSiS->VGAEngine != SIS_300_VGA && - pSiS->VGAEngine != SIS_315_VGA) return FALSE; - - /* Mode is OK if there is no video bridge */ - /* (Requires screen size check in app) */ - if(!(pSiS->VBFlags & VB_VIDEOBRIDGE)) return TRUE; + /* returns 0 if mode ok, + * 0x01 if mode not ok for CRT2 device, + * 0x02 if mode too large for current root window + * or combinations thereof + */ /* No special treatment for NTSC-J here */ if(cond) { @@ -7045,14 +7070,10 @@ SISCheckModeIndexForCRT2Type(ScrnInfoPtr pScrn, unsigned short cond, unsigned sh } } - /* Mode is obviously OK if video bridge is disabled */ - /* (Requires extra check for eventual screen size problems in app) */ - if(!(vbflags & (CRT2_ENABLE | CRT1_LCDA))) return TRUE; - /* Find mode of given index */ if(index) { for(i = 0; i < index; i++) { - if(!mode) return FALSE; + if(!mode) return 0x03; mode = mode->next; } } @@ -7080,7 +7101,7 @@ SISCheckModeIndexForCRT2Type(ScrnInfoPtr pScrn, unsigned short cond, unsigned sh xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Desired mode too large for current screen size\n"); } - return FALSE; + result |= 0x02; } /* Check if the desired mode is suitable for current CRT2 output device */ @@ -7089,7 +7110,7 @@ SISCheckModeIndexForCRT2Type(ScrnInfoPtr pScrn, unsigned short cond, unsigned sh xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Desired mode not suitable for current CRT2 output device\n"); } - return FALSE; + result |= 0x01; } } @@ -7121,7 +7142,7 @@ SISCheckModeIndexForCRT2Type(ScrnInfoPtr pScrn, unsigned short cond, unsigned sh xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Desired mode too large for current screen size\n"); } - return FALSE; + result |= 0x02; } /* Check if the desired mode is suitable for current CRT1 output device */ @@ -7130,7 +7151,7 @@ SISCheckModeIndexForCRT2Type(ScrnInfoPtr pScrn, unsigned short cond, unsigned sh xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Desired mode not suitable for current CRT1 output device\n"); } - return FALSE; + result |= 0x01; } } @@ -7139,7 +7160,7 @@ SISCheckModeIndexForCRT2Type(ScrnInfoPtr pScrn, unsigned short cond, unsigned sh } #endif - return TRUE; + return result; } Bool @@ -7611,8 +7632,10 @@ SISEnterVT(int scrnIndex, int flags) sisSaveUnlockExtRegisterLock(pSiS, NULL, NULL); - if(pSiS->VGAEngine == SIS_300_VGA || pSiS->VGAEngine == SIS_315_VGA) { - andSISIDXREG(SISCR,0x34,0x7f); + if((pSiS->VGAEngine == SIS_300_VGA) || (pSiS->VGAEngine == SIS_315_VGA)) { + outSISIDXREG(SISCR,0x32,pSiS->myCR32); + outSISIDXREG(SISCR,0x36,pSiS->myCR36); + outSISIDXREG(SISCR,0x37,pSiS->myCR37); } if(!SISModeInit(pScrn, pScrn->currentMode)) { @@ -7623,7 +7646,6 @@ SISEnterVT(int scrnIndex, int flags) SISAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); #ifdef XF86DRI - /* this is to be done AFTER switching the mode */ if(pSiS->directRenderingEnabled) { DRIUnlock(screenInfo.screens[scrnIndex]); } @@ -7653,7 +7675,6 @@ SISLeaveVT(int scrnIndex, int flags) #ifdef XF86DRI ScreenPtr pScreen; - /* to be done before mode change */ if(pSiS->directRenderingEnabled) { pScreen = screenInfo.screens[scrnIndex]; DRILock(pScreen, 0); @@ -7702,7 +7723,7 @@ SISLeaveVT(int scrnIndex, int flags) } - /* We use this (otherwise unused) bit to indicate that we are running + /* We use (otherwise unused) bit 7 to indicate that we are running * to keep sisfb to change the displaymode (this would result in * lethal display corruption upon quitting X or changing to a VT * until a reboot) @@ -7778,12 +7799,16 @@ SISCloseScreen(int scrnIndex, ScreenPtr pScreen) } vgaHWLock(hwp); - } - if(pSiS->VGAEngine == SIS_300_VGA || pSiS->VGAEngine == SIS_315_VGA) { - andSISIDXREG(SISCR,0x34,0x7f); } + /* We should restore the mode number in case vtsema = false as well, + * but since we haven't register access then we can't do it. I think + * I need to rework the save/restore stuff, like saving the video + * status when returning to the X server and by that save me the + * trouble if sisfb was started from a textmode VT while X was on. + */ + SISUnmapMem(pScrn); vgaHWUnmapMem(pScrn); @@ -11005,6 +11030,7 @@ SiS_CheckCalcModeIndex(ScrnInfoPtr pScrn, DisplayModePtr mode, unsigned long VBF return 0xfe; if((havecustommodes) && + (pSiS->LCDwidth) && /* = test if LCD present */ (!(mode->type & M_T_DEFAULT)) && (!(mode->Flags & V_INTERLACE))) return 0xfe; diff --git a/src/sis_driver.h b/src/sis_driver.h index 34d1d8e..09cf7ba 100644 --- a/src/sis_driver.h +++ b/src/sis_driver.h @@ -1,5 +1,5 @@ -/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.h,v 1.29 2003/11/29 12:08:02 twini Exp $ */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.h,v 1.29 2003/11/29 12:08:02 twini Exp $ */ +/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.h,v 1.1.4.2 2003/12/06 13:24:25 kaleb Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.h,v 1.30 2003/12/16 17:35:07 twini Exp $ */ /* * Global data and definitions * @@ -223,7 +223,14 @@ const customttable mycustomttable[] = { { 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0 }, 0x1043, 0x1612, - "Asus", "A2H", CUT_ASUSA2H, "ASUS_A2H" + "Asus", "A2H (V1)", CUT_ASUSA2H_1, "ASUS_A2H_1" + }, + { SIS_650, "1.10.8q", "", + 0, /* For EMI */ + { 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0 }, + 0x1043, 0x1612, + "Asus", "A2H (V2)", CUT_ASUSA2H_2, "ASUS_A2H_2" }, { 4321, "", "", /* never autodetected */ 0, diff --git a/src/sis_opt.c b/src/sis_opt.c index 96a72ca..8144285 100644 --- a/src/sis_opt.c +++ b/src/sis_opt.c @@ -1,5 +1,5 @@ -/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_opt.c,v 1.49 2003/12/02 12:15:33 twini Exp $ */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_opt.c,v 1.49 2003/12/02 12:15:33 twini Exp $ */ +/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_opt.c,v 1.1.4.2 2003/12/06 13:24:25 kaleb Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_opt.c,v 1.50 2003/12/09 17:49:26 twini Exp $ */ /* * SiS driver option evaluation * @@ -340,7 +340,7 @@ SiSOptions(ScrnInfoPtr pScrn) pSiS->enablesisctrl = FALSE; if((pSiS->VGAEngine == SIS_300_VGA) || (pSiS->VGAEngine == SIS_315_VGA)) { pSiS->XvDefBri = 10; - pSiS->XvDefCon = 5; + pSiS->XvDefCon = 2; } else { pSiS->XvDefBri = 0; pSiS->XvDefCon = 4; diff --git a/src/sis_vb.c b/src/sis_vb.c index f89adb6..5ee848c 100644 --- a/src/sis_vb.c +++ b/src/sis_vb.c @@ -1,5 +1,5 @@ -/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/vgatypes.h,v 1.17 2003/12/02 12:15:33 twini Exp $ */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_vb.c,v 1.32 2003/11/23 19:44:26 twini Exp $ */ +/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_vb.c,v 1.1.4.2 2003/12/06 13:24:25 kaleb Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_vb.c,v 1.34 2003/12/16 17:35:07 twini Exp $ */ /* * Video bridge detection and configuration for 300, 315 and 330 series * @@ -213,6 +213,8 @@ void SISLCDPreInit(ScrnInfoPtr pScrn) SISPtr pSiS = SISPTR(pScrn); unsigned char CR32, CR36, CR37; + pSiS->LCDwidth = 0; + if(!(pSiS->VBFlags & VB_VIDEOBRIDGE)) return; inSISIDXREG(SISCR, 0x32, CR32); @@ -356,8 +358,7 @@ void SISTVPreInit(ScrnInfoPtr pScrn) unsigned char SR16, SR38, CR32, CR35=0, CR38=0, CR79; int temp = 0; - if(!(pSiS->VBFlags & VB_VIDEOBRIDGE)) - return; + if(!(pSiS->VBFlags & VB_VIDEOBRIDGE)) return; inSISIDXREG(SISCR, 0x32, CR32); inSISIDXREG(SISSR, 0x16, SR16); @@ -444,7 +445,7 @@ void SISTVPreInit(ScrnInfoPtr pScrn) } } - if(pSiS->VBFlags & (TV_SCART | TV_SVIDEO | TV_AVIDEO | TV_HIVISION | TV_YPBPR | TV_CHSCART | TV_CHHDTV)) { + if(pSiS->VBFlags & (TV_SCART|TV_SVIDEO|TV_AVIDEO|TV_HIVISION|TV_YPBPR|TV_CHSCART|TV_CHHDTV)) { xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "%sTV standard %s\n", (pSiS->VBFlags & (TV_CHSCART | TV_CHHDTV)) ? "Using " : "Detected default ", @@ -462,8 +463,7 @@ void SISCRT2PreInit(ScrnInfoPtr pScrn) SISPtr pSiS = SISPTR(pScrn); unsigned char CR32; - if(!(pSiS->VBFlags & VB_VIDEOBRIDGE)) - return; + if(!(pSiS->VBFlags & VB_VIDEOBRIDGE)) return; /* CRT2-VGA not supported on LVDS and 30xLV */ if(pSiS->VBFlags & (VB_LVDS|VB_301LV|VB_302LV|VB_302ELV)) diff --git a/src/sis_video.c b/src/sis_video.c index afe3012..4133a0e 100644 --- a/src/sis_video.c +++ b/src/sis_video.c @@ -1,4 +1,5 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_video.c,v 1.41 2003/11/19 00:49:06 twini Exp $ */ +/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_video.c,v 1.44 2003/12/16 17:35:07 twini Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_video.c,v 1.44 2003/12/16 17:35:07 twini Exp $ */ /* * Xv driver for SiS 300, 315 and 330 series. * @@ -1676,12 +1677,12 @@ SISSetPortAttribute(ScrnInfoPtr pScrn, Atom attribute, } } else if(attribute == pSiS->xv_CMD) { if(pSiS->xv_sisdirectunlocked) { + int result = 0; pSiS->xv_sd_result = (value & 0xffffff00); - if(SISCheckModeIndexForCRT2Type(pScrn, (unsigned short)(value & 0xff), - (unsigned short)((value >> 8) & 0xff), - FALSE)) { - pSiS->xv_sd_result |= 0x01; - } + result = SISCheckModeIndexForCRT2Type(pScrn, (unsigned short)(value & 0xff), + (unsigned short)((value >> 8) & 0xff), + FALSE); + pSiS->xv_sd_result |= (result & 0xff); } } else if(attribute == pSiS->xv_SGA) { if(pSiS->xv_sisdirectunlocked) { @@ -2081,12 +2082,10 @@ SiSHandleSiSDirectCommand(ScrnInfoPtr pScrn, SISPortPrivPtr pPriv, sisdirectcomm break; case SDC_CMD_CHECKMODEFORCRT2: j = sdcbuf->sdc_parm[0]; - sdcbuf->sdc_parm[0] = 0; - if(SISCheckModeIndexForCRT2Type(pScrn, (unsigned short)(j & 0xff), - (unsigned short)((j >> 8) & 0xff), - FALSE)) { - sdcbuf->sdc_parm[0] = 1; - } + sdcbuf->sdc_parm[0] = SISCheckModeIndexForCRT2Type(pScrn, + (unsigned short)(j & 0xff), + (unsigned short)((j >> 8) & 0xff), + FALSE) & 0xff; break; default: sdcbuf->sdc_header = SDC_RESULT_UNDEFCMD; @@ -2700,7 +2699,7 @@ set_brightness(SISPtr pSiS, CARD8 brightness) static __inline void set_contrast(SISPtr pSiS, CARD8 contrast) { - setvideoregmask(pSiS, Index_VI_Contrast_Enh_Ctrl, contrast ^ 0x07, 0x07); + setvideoregmask(pSiS, Index_VI_Contrast_Enh_Ctrl, contrast, 0x07); } /* 315 series and later only */ @@ -3398,6 +3397,7 @@ SISDisplayVideo(ScrnInfoPtr pScrn, SISPortPrivPtr pPriv) pPriv->mustwait = 1; pPriv->oldx1 = overlay.dstBox.x1; pPriv->oldx2 = overlay.dstBox.x2; pPriv->oldy1 = overlay.dstBox.y1; pPriv->oldy2 = overlay.dstBox.y2; + } #ifdef SISMERGED } diff --git a/src/vgatypes.h b/src/vgatypes.h index 533a5d8..b46d892 100644 --- a/src/vgatypes.h +++ b/src/vgatypes.h @@ -1,5 +1,5 @@ -/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/vgatypes.h,v 1.17 2003/12/02 12:15:33 twini Exp $ */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/vgatypes.h,v 1.17 2003/12/02 12:15:33 twini Exp $ */ +/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/vgatypes.h,v 1.1.4.2 2003/12/06 13:24:25 kaleb Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/vgatypes.h,v 1.18 2003/12/16 17:45:20 twini Exp $ */ /* * General type definitions for universal mode switching modules * @@ -286,8 +286,9 @@ struct _SISFB_INFO { unsigned char sisfb_haveemi; unsigned char sisfb_emi30,sisfb_emi31,sisfb_emi32,sisfb_emi33; + unsigned char sisfb_haveemilcd; - char reserved[214]; /* for future use */ + char reserved[213]; /* for future use */ }; #endif diff --git a/src/vstruct.h b/src/vstruct.h index 3f1225f..2d3b1ee 100644 --- a/src/vstruct.h +++ b/src/vstruct.h @@ -1,5 +1,5 @@ -/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/vstruct.h,v 1.25 2003/12/02 12:15:33 twini Exp $ */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/vstruct.h,v 1.25 2003/12/02 12:15:33 twini Exp $ */ +/* $XdotOrg: xc/programs/Xserver/hw/xfree86/drivers/sis/vstruct.h,v 1.1.4.2 2003/12/06 13:24:25 kaleb Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/vstruct.h,v 1.26 2003/12/16 17:35:07 twini Exp $ */ /* * General structure definitions for universal mode switching modules * @@ -230,7 +230,8 @@ typedef UCHAR DRAM4Type[4]; #define CUT_ACER1280 14 #define CUT_COMPAL1400_1 15 #define CUT_COMPAL1400_2 16 -#define CUT_ASUSA2H 17 +#define CUT_ASUSA2H_1 17 +#define CUT_ASUSA2H_2 18 typedef struct _SiS_Private { |