Lines Matching refs:pSiS

255 void		SiSCtrlExtUnregister(SISPtr pSiS, int index);
277 extern void SISUpdateVideoParms(SISPtr pSiS, SISPortPrivPtr pPriv);
278 extern void SiSUpdateXvGamma(SISPtr pSiS, SISPortPrivPtr pPriv);
287 SISPtr pSiS = SISPTR(pScrn);
289 ULong vbflags = pSiS->VBFlags;
290 ULong vbflags3 = pSiS->VBFlags3;
316 if(pSiS->VGAEngine != SIS_300_VGA &&
317 pSiS->VGAEngine != SIS_315_VGA) return FALSE;
323 if(pSiS->DualHeadMode) return FALSE;
327 if(!(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTLCDA)) {
338 if(pSiS->MergedFB) {
347 if(!(pSiS->SiS_SD3_Flags & SiS_SD3_SUPPORTDUALDVI)) {
373 if(!(pSiS->SiS_SD3_Flags & SiS_SD3_SUPPORTDUALDVI)) {
387 if(SiS_CheckModeCRT1(pScrn, mode, vbflags, pSiS->HaveCustomModes) < 0x14) {
396 pSiS->CRT1off = crt1off;
397 pSiS->VBFlags = pSiS->VBFlags_backup = vbflags;
398 pSiS->VBFlags3 = pSiS->VBFlags_backup3 = vbflags3;
401 (*pSiS->SyncAccel)(pScrn);
403 pSiS->skipswitchcheck = TRUE;
405 pSiS->skipswitchcheck = FALSE;
408 pSiS->skipswitchcheck = FALSE;
416 SISPtr pSiS = SISPTR(pScrn);
418 if((pSiS->VGAEngine != SIS_300_VGA) && (pSiS->VGAEngine != SIS_315_VGA)) {
423 if(pSiS->DualHeadMode) return FALSE;
427 (*pSiS->SyncAccel)(pScrn);
432 (*pSiS->SyncAccel)(pScrn);
433 pSiS->skipswitchcheck = TRUE;
435 pSiS->skipswitchcheck = FALSE;
438 pSiS->skipswitchcheck = FALSE;
447 SISPtr pSiS = SISPTR(pScrn);
448 Bool hcm = pSiS->HaveCustomModes;
471 if(pSiS->VGAEngine != SIS_300_VGA &&
472 pSiS->VGAEngine != SIS_315_VGA) return FALSE;
475 if(!(pSiS->VBFlags2 & VB2_VIDEOBRIDGE)) return FALSE;
478 if(pSiS->DualHeadMode) return FALSE;
486 newvbflags |= pSiS->VBFlags & ~SiS_NewVBMask;
488 if(!(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTLCDA)) {
491 if(!(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTHIVISION)) {
494 if(!(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTYPBPR)) {
499 if(pSiS->MergedFB) {
509 if(!(pSiS->SiS_SD3_Flags & SiS_SD3_SUPPORTDUALDVI)) {
519 hcm = pSiS->HaveCustomModes2;
535 if(!(pSiS->SiS_SD3_Flags & SiS_SD3_SUPPORTDUALDVI)) {
559 (*pSiS->SyncAccel)(pScrn);
561 pSiS->VBFlags = pSiS->VBFlags_backup = newvbflags;
563 pSiS->skipswitchcheck = TRUE;
565 pSiS->skipswitchcheck = FALSE;
568 pSiS->skipswitchcheck = FALSE;
626 SISPtr pSiS = SISPTR(pScrn);
628 Bool hcm = pSiS->HaveCustomModes;
634 if((!pSiS->DualHeadMode) || (!pSiS->SecondHead)) {
640 if(pSiS->MergedFB) {
641 hcm = pSiS->HaveCustomModes2;
675 if((!pSiS->DualHeadMode) || (pSiS->SecondHead)) {
681 if(pSiS->MergedFB) {
682 hcm = pSiS->HaveCustomModes;
720 SISPtr pSiS = SISPTR(pScrn);
733 vbflags = SiSCondToVBFlags(cond, pSiS->VBFlags);
782 SISPtr pSiS = SISPTR(pScrn);
794 vbflags = SiSCondToVBFlags(cond, pSiS->VBFlags);
813 SISPtr pSiS = SISPTR(pScrn);
816 if(!pSiS->MergedFB) {
870 SISPtr pSiS = SISPTR(pScrn);
872 SISEntPtr pSiSEnt = pSiS->entityPrivate;
880 if(pSiS->adaptor) {
906 if(pSiS->BIOS) {
907 romptr = pSiS->BIOS[0x16] | (pSiS->BIOS[0x17] << 8);
909 biosvers = (char *)&pSiS->BIOS[romptr];
914 sdcbuf->sdc_result[0] = pSiS->IsAGPCard ? SDC_BUS_TYPE_AGP : SDC_BUS_TYPE_PCI;
915 if(pSiS->IsPCIExpress) sdcbuf->sdc_result[0] = SDC_BUS_TYPE_PCIE;
916 sdcbuf->sdc_result[1] = pSiS->PciBus;
917 sdcbuf->sdc_result[2] = pSiS->PciDevice;
918 sdcbuf->sdc_result[3] = pSiS->PciFunc;
919 sdcbuf->sdc_result[4] = pSiS->ROM661New ? 1 : (pSiS->HaveXGIBIOS ? 2 : 0),
920 sdcbuf->sdc_result[5] = pSiS->ChipFlags;
921 sdcbuf->sdc_result[6] = pSiS->ChipType;
922 sdcbuf->sdc_result[7] = pSiS->ChipRev;
928 sdcbuf->sdc_result[13] = pSiS->UMAsize;
929 sdcbuf->sdc_result[14] = pSiS->LFBsize;
937 sdcbuf->sdc_result[1] = pSiS->VBFlags;
938 sdcbuf->sdc_result[2] = pSiS->SiS_SD_Flags;
939 sdcbuf->sdc_result[3] = pSiS->SiS_SD2_Flags;
940 sdcbuf->sdc_result[4] = pSiS->detectedCRT2Devices;
941 sdcbuf->sdc_result[5] = pSiS->VBFlags2;
942 sdcbuf->sdc_result[6] = pSiS->SiS_SD3_Flags;
943 sdcbuf->sdc_result[7] = pSiS->SiS_SD4_Flags;
944 sdcbuf->sdc_result[8] = pSiS->VBFlags3;
945 sdcbuf->sdc_result[9] = pSiS->VBFlags4;
953 sdcbuf->sdc_result[0] = pSiS->VBFlags;
954 sdcbuf->sdc_result[1] = pSiS->VBFlags2;
955 sdcbuf->sdc_result[2] = pSiS->VBFlags3;
956 sdcbuf->sdc_result[3] = pSiS->VBFlags4;
976 hd, vd, ht, vt, hss, hse, vss, vse, clk, pSiS->SCLogQuiet) & 0xff;
983 if(!pSiS->DualHeadMode) {
985 if(pSiS->xv_sisdirectunlocked) {
986 SISSwitchCRT2Type(pScrn, (ULong)sdcbuf->sdc_parm[0], pSiS->SCLogQuiet);
987 if(pPriv) SISUpdateVideoParms(pSiS, pPriv);
996 if(!pSiS->DualHeadMode) {
998 if(pSiS->xv_sisdirectunlocked) {
1000 (ULong)sdcbuf->sdc_parm[2], pSiS->SCLogQuiet);
1001 if(pPriv) SISUpdateVideoParms(pSiS, pPriv);
1009 sdcbuf->sdc_result[0] = pSiS->detectedCRT2Devices;
1014 if(!pSiS->DualHeadMode) {
1016 if(pSiS->xv_sisdirectunlocked) {
1025 sdcbuf->sdc_result[0] = pSiS->CRT1isoff ? 0 : 1;
1030 if(!pSiS->DualHeadMode) {
1032 if(pSiS->xv_sisdirectunlocked) {
1033 SISSwitchCRT1Status(pScrn, (ULong)sdcbuf->sdc_parm[0], pSiS->SCLogQuiet);
1034 if(pPriv) SISUpdateVideoParms(pSiS, pPriv);
1042 sdcbuf->sdc_result[0] = pSiS->SiS_SD_Flags;
1046 sdcbuf->sdc_result[0] = pSiS->SiS_SD2_Flags;
1050 sdcbuf->sdc_result[0] = pSiS->xv_sisdirectunlocked;
1054 if(pSiS->enablesisctrl) {
1056 pSiS->xv_sisdirectunlocked++;
1057 } else if(pSiS->xv_sisdirectunlocked) {
1058 pSiS->xv_sisdirectunlocked--;
1061 pSiS->xv_sisdirectunlocked = 0;
1071 if(pSiS->xv_sisdirectunlocked) {
1081 if(pSiS->xv_sisdirectunlocked) {
1091 if(pSiS->xv_sisdirectunlocked) {
1101 if(pSiS->xv_sisdirectunlocked) {
1111 if(pSiS->xv_sisdirectunlocked) {
1122 if(pSiS->xv_sisdirectunlocked) {
1133 if(pSiS->xv_sisdirectunlocked) {
1143 if(pSiS->xv_sisdirectunlocked) {
1153 if(pSiS->xv_sisdirectunlocked) {
1163 if(pSiS->xv_sisdirectunlocked) {
1173 if(pSiS->xv_sisdirectunlocked) {
1181 if(pSiS->OptTVSOver == 1) i = 3;
1182 else if(pSiS->UseCHOverScan == 1) i = 2;
1183 else if(pSiS->UseCHOverScan == 0) i = 1;
1189 if(pSiS->xv_sisdirectunlocked) {
1190 pSiS->UseCHOverScan = -1;
1191 pSiS->OptTVSOver = FALSE;
1193 if(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTSOVER) {
1194 pSiS->OptTVSOver = TRUE;
1196 pSiS->UseCHOverScan = 1;
1197 } else if(sdcbuf->sdc_parm[0] == 2) pSiS->UseCHOverScan = 1;
1198 else if(sdcbuf->sdc_parm[0] == 1) pSiS->UseCHOverScan = 0;
1206 if(pSiS->DualHeadMode) {
1211 if(pSiS->CRT1gamma) i |= 0x01;
1212 if(pSiS->CRT2gamma) i |= 0x02;
1213 if(pSiS->CRT2SepGamma) i |= 0x08;
1217 if(pSiS->XvGamma) i |= 0x04;
1223 if(pSiS->xv_sisdirectunlocked) {
1225 Bool backup = pSiS->XvGamma;
1226 Bool backup2 = pSiS->CRT2SepGamma;
1227 pSiS->CRT1gamma = (value & 0x01) ? TRUE : FALSE;
1228 pSiS->CRT2gamma = (value & 0x02) ? TRUE : FALSE;
1230 if(pSiS->DualHeadMode) {
1231 pSiSEnt->CRT1gamma = pSiS->CRT1gamma;
1232 pSiSEnt->CRT2gamma = pSiS->CRT2gamma;
1235 if(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTSGRCRT2) {
1236 pSiS->CRT2SepGamma = (value & 0x08) ? TRUE : FALSE;
1237 if(pSiS->CRT2SepGamma != backup2) {
1238 if(pSiS->CRT2SepGamma) {
1260 } else pSiS->CRT2SepGamma = FALSE;
1262 pSiS->XvGamma = (value & 0x04) ? TRUE : FALSE;
1263 if(pSiS->VGAEngine == SIS_315_VGA) {
1264 if(backup != pSiS->XvGamma) {
1265 if(pPriv) SiSUpdateXvGamma(pSiS, pPriv);
1280 } else if(pSiS->xv_sisdirectunlocked) {
1295 } else if(pSiS->xv_sisdirectunlocked) {
1306 sdcbuf->sdc_result[0] = pSiS->GammaBriR;
1307 sdcbuf->sdc_result[1] = pSiS->GammaBriG;
1308 sdcbuf->sdc_result[2] = pSiS->GammaBriB;
1312 sdcbuf->sdc_result[0] = (CARD32)(((int)(pSiS->NewGammaBriR * 1000.0)) + 1000);
1313 sdcbuf->sdc_result[1] = (CARD32)(((int)(pSiS->NewGammaBriG * 1000.0)) + 1000);
1314 sdcbuf->sdc_result[2] = (CARD32)(((int)(pSiS->NewGammaBriB * 1000.0)) + 1000);
1315 sdcbuf->sdc_result[3] = (CARD32)(((int)(pSiS->NewGammaConR * 1000.0)) + 1000);
1316 sdcbuf->sdc_result[4] = (CARD32)(((int)(pSiS->NewGammaConG * 1000.0)) + 1000);
1317 sdcbuf->sdc_result[5] = (CARD32)(((int)(pSiS->NewGammaConB * 1000.0)) + 1000);
1325 } else if(pSiS->xv_sisdirectunlocked) {
1326 pSiS->GammaBriR = sdcbuf->sdc_parm[0];
1327 pSiS->GammaBriG = sdcbuf->sdc_parm[1];
1328 pSiS->GammaBriB = sdcbuf->sdc_parm[2];
1329 pSiS->NewGammaBriR = pSiS->NewGammaBriG = pSiS->NewGammaBriB = 0.0;
1330 pSiS->NewGammaConR = pSiS->NewGammaConG = pSiS->NewGammaConB = 0.0;
1331 pSiS->SiS_SD3_Flags |= SiS_SD3_OLDGAMMAINUSE;
1340 } else if(pSiS->xv_sisdirectunlocked) {
1341 pSiS->NewGammaBriR = ((float)((int)sdcbuf->sdc_parm[0] - 1000)) / 1000.0;
1342 pSiS->NewGammaBriG = ((float)((int)sdcbuf->sdc_parm[1] - 1000)) / 1000.0;
1343 pSiS->NewGammaBriB = ((float)((int)sdcbuf->sdc_parm[2] - 1000)) / 1000.0;
1344 pSiS->NewGammaConR = ((float)((int)sdcbuf->sdc_parm[3] - 1000)) / 1000.0;
1345 pSiS->NewGammaConG = ((float)((int)sdcbuf->sdc_parm[4] - 1000)) / 1000.0;
1346 pSiS->NewGammaConB = ((float)((int)sdcbuf->sdc_parm[5] - 1000)) / 1000.0;
1347 pSiS->GammaBriR = pSiS->GammaBriG = pSiS->GammaBriB = 1000;
1348 pSiS->SiS_SD3_Flags &= ~SiS_SD3_OLDGAMMAINUSE;
1354 if(pSiS->DualHeadMode) {
1361 sdcbuf->sdc_result[0] = pSiS->GammaBriR;
1362 sdcbuf->sdc_result[1] = pSiS->GammaBriG;
1363 sdcbuf->sdc_result[2] = pSiS->GammaBriB;
1368 if(pSiS->DualHeadMode) {
1378 sdcbuf->sdc_result[0] = (CARD32)(((int)(pSiS->NewGammaBriR * 1000.0)) + 1000);
1379 sdcbuf->sdc_result[1] = (CARD32)(((int)(pSiS->NewGammaBriG * 1000.0)) + 1000);
1380 sdcbuf->sdc_result[2] = (CARD32)(((int)(pSiS->NewGammaBriB * 1000.0)) + 1000);
1381 sdcbuf->sdc_result[3] = (CARD32)(((int)(pSiS->NewGammaConR * 1000.0)) + 1000);
1382 sdcbuf->sdc_result[4] = (CARD32)(((int)(pSiS->NewGammaConG * 1000.0)) + 1000);
1383 sdcbuf->sdc_result[5] = (CARD32)(((int)(pSiS->NewGammaConB * 1000.0)) + 1000);
1391 } else if(pSiS->xv_sisdirectunlocked) {
1392 pSiS->SiS_SD3_Flags |= SiS_SD3_OLDGAMMAINUSE;
1394 if(pSiS->DualHeadMode) {
1410 } else if(pSiS->xv_sisdirectunlocked) {
1411 pSiS->SiS_SD3_Flags &= ~SiS_SD3_OLDGAMMAINUSE;
1413 if(pSiS->DualHeadMode) {
1427 sdcbuf->sdc_result[0] = (ULong)(pSiS->GammaR2 * 1000);
1428 sdcbuf->sdc_result[1] = (ULong)(pSiS->GammaG2 * 1000);
1429 sdcbuf->sdc_result[2] = (ULong)(pSiS->GammaB2 * 1000);
1430 sdcbuf->sdc_result[3] = pSiS->GammaBriR2;
1431 sdcbuf->sdc_result[4] = pSiS->GammaBriG2;
1432 sdcbuf->sdc_result[5] = pSiS->GammaBriB2;
1436 sdcbuf->sdc_result[0] = (ULong)(pSiS->GammaR2 * 1000);
1437 sdcbuf->sdc_result[1] = (ULong)(pSiS->GammaG2 * 1000);
1438 sdcbuf->sdc_result[2] = (ULong)(pSiS->GammaB2 * 1000);
1439 sdcbuf->sdc_result[3] = (CARD32)(((int)(pSiS->NewGammaBriR2 * 1000.0)) + 1000);
1440 sdcbuf->sdc_result[4] = (CARD32)(((int)(pSiS->NewGammaBriG2 * 1000.0)) + 1000);
1441 sdcbuf->sdc_result[5] = (CARD32)(((int)(pSiS->NewGammaBriB2 * 1000.0)) + 1000);
1442 sdcbuf->sdc_result[6] = (CARD32)(((int)(pSiS->NewGammaConR2 * 1000.0)) + 1000);
1443 sdcbuf->sdc_result[7] = (CARD32)(((int)(pSiS->NewGammaConG2 * 1000.0)) + 1000);
1444 sdcbuf->sdc_result[8] = (CARD32)(((int)(pSiS->NewGammaConB2 * 1000.0)) + 1000);
1455 } else if(pSiS->xv_sisdirectunlocked) {
1456 pSiS->GammaR2 = (float)sdcbuf->sdc_parm[0] / (float)1000;
1457 pSiS->GammaG2 = (float)sdcbuf->sdc_parm[1] / (float)1000;
1458 pSiS->GammaB2 = (float)sdcbuf->sdc_parm[2] / (float)1000;
1459 pSiS->GammaBriR2 = sdcbuf->sdc_parm[3];
1460 pSiS->GammaBriG2 = sdcbuf->sdc_parm[4];
1461 pSiS->GammaBriB2 = sdcbuf->sdc_parm[5];
1462 pSiS->NewGammaBriR2 = pSiS->NewGammaBriG2 = pSiS->NewGammaBriB2 = 0.0;
1463 pSiS->NewGammaConR2 = pSiS->NewGammaConG2 = pSiS->NewGammaConB2 = 0.0;
1464 pSiS->SiS_SD3_Flags |= SiS_SD3_OLDGAMMAINUSE;
1477 } else if(pSiS->xv_sisdirectunlocked) {
1478 pSiS->GammaR2 = (float)sdcbuf->sdc_parm[0] / (float)1000;
1479 pSiS->GammaG2 = (float)sdcbuf->sdc_parm[1] / (float)1000;
1480 pSiS->GammaB2 = (float)sdcbuf->sdc_parm[2] / (float)1000;
1481 pSiS->NewGammaBriR2 = ((float)((int)sdcbuf->sdc_parm[3] - 1000)) / 1000.0;
1482 pSiS->NewGammaBriG2 = ((float)((int)sdcbuf->sdc_parm[4] - 1000)) / 1000.0;
1483 pSiS->NewGammaBriB2 = ((float)((int)sdcbuf->sdc_parm[5] - 1000)) / 1000.0;
1484 pSiS->NewGammaConR2 = ((float)((int)sdcbuf->sdc_parm[6] - 1000)) / 1000.0;
1485 pSiS->NewGammaConG2 = ((float)((int)sdcbuf->sdc_parm[7] - 1000)) / 1000.0;
1486 pSiS->NewGammaConB2 = ((float)((int)sdcbuf->sdc_parm[8] - 1000)) / 1000.0;
1487 pSiS->GammaBriR2 = pSiS->GammaBriG2 = pSiS->GammaBriB2 = 1000;
1488 pSiS->SiS_SD3_Flags &= ~SiS_SD3_OLDGAMMAINUSE;
1494 sdcbuf->sdc_result[0] = pSiS->HideHWCursor ? 1 : 0;
1498 if(pSiS->xv_sisdirectunlocked) {
1499 Bool VisibleBackup = pSiS->HWCursorIsVisible;
1500 pSiS->HideHWCursor = sdcbuf->sdc_parm[0] ? TRUE : FALSE;
1501 if(pSiS->CursorInfoPtr) {
1504 (pSiS->CursorInfoPtr->HideCursor)(pScrn);
1506 (pSiS->CursorInfoPtr->ShowCursor)(pScrn);
1509 pSiS->HWCursorIsVisible = VisibleBackup;
1517 if(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTSCALE) {
1518 switch(pSiS->SiS_Pr->UsePanelScaler) {
1522 if(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTCENTER) {
1523 switch(pSiS->SiS_Pr->CenterScreen) {
1534 if(pSiS->xv_sisdirectunlocked) {
1536 if(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTSCALE) {
1537 if(value & 0x01) pSiS->SiS_Pr->UsePanelScaler = -1;
1538 else if(value & 0x02) pSiS->SiS_Pr->UsePanelScaler = 1;
1539 else pSiS->SiS_Pr->UsePanelScaler = 0;
1540 if(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTCENTER) {
1541 if(value & 0x04) pSiS->SiS_Pr->CenterScreen = -1;
1542 else if(value & 0x08) pSiS->SiS_Pr->CenterScreen = 1;
1543 else pSiS->SiS_Pr->CenterScreen = 0;
1551 if(pSiS->MergedFB) {
1577 switch(pSiS->CRT2Position) {
1592 SISPtr mypSiS = pSiS;
1595 if(pSiS->DualHeadMode) {
1608 if(pSiS->DualHeadMode) {
1621 if(pSiS->DualHeadMode) {
1633 if(pSiS->DualHeadMode) {
1673 if((pPriv) && (pSiS->SiS_SD2_Flags & SiS_SD2_SUPPORTXVHUESAT)) {
1681 if((pPriv) && (pSiS->SiS_SD2_Flags & SiS_SD2_SUPPORTXVHUESAT)) {
1687 if((pPriv) && (pSiS->SiS_SD2_Flags & SiS_SD2_SUPPORTXVHUESAT)) {
1695 if((pPriv) && (pSiS->SiS_SD2_Flags & SiS_SD2_SUPPORTXVHUESAT)) {
1701 if((pPriv) && (pSiS->SiS_SD_Flags & SiS_SD_SUPPORTXVGAMMA1)) {
1707 pSiS->XvGammaRed = sdcbuf->sdc_parm[0];
1708 pSiS->XvGammaGreen = sdcbuf->sdc_parm[1];
1709 pSiS->XvGammaBlue = sdcbuf->sdc_parm[2];
1710 SiSUpdateXvGamma(pSiS, pPriv);
1716 if((pPriv) && (pSiS->SiS_SD_Flags & SiS_SD_SUPPORTXVGAMMA1)) {
1717 sdcbuf->sdc_result[0] = pSiS->XvGammaRed;
1718 sdcbuf->sdc_result[1] = pSiS->XvGammaGreen;
1719 sdcbuf->sdc_result[2] = pSiS->XvGammaBlue;
1725 pPriv->colorKey = pSiS->colorKey = sdcbuf->sdc_parm[0];
1778 if((pPriv) && (pSiS->VGAEngine == SIS_315_VGA)) {
1789 if((pPriv) && (pSiS->VGAEngine == SIS_315_VGA)) {
1805 } else if(pSiS->xv_sisdirectunlocked) {
1822 } else if(pSiS->xv_sisdirectunlocked) {
1840 sdcbuf->sdc_result[0] = pSiS->CRT1MonGamma;
1844 sdcbuf->sdc_result[0] = pSiS->CRT2MonGamma;
1848 pSiS->SCLogQuiet = sdcbuf->sdc_parm[0] ? TRUE : FALSE;
1856 if(pSiS->xv_sisdirectunlocked) {
2012 * which is why we must not use pSiS->SiSCtrlExtEntry
2024 SISPtr pSiS = SISPTR(pScrn);
2029 if((pSiS->VGAEngine != SIS_300_VGA) &&
2030 (pSiS->VGAEngine != SIS_315_VGA))
2033 pSiS->SCLogQuiet = FALSE;
2077 pSiS->SiSCtrlExtEntry = myext;
2093 SiSCtrlExtUnregister(SISPtr pSiS, int index)
2098 if(!pSiS->SiSCtrlExtEntry) return;
2122 SISPtr pSiS = SISPTR(pScrn);
2124 SISEntPtr pSiSEnt = pSiS->entityPrivate;;
2127 if(attribute == pSiS->xv_USD) {
2128 if(pSiS->enablesisctrl) {
2130 pSiS->xv_sisdirectunlocked++;
2131 } else if(pSiS->xv_sisdirectunlocked) {
2132 pSiS->xv_sisdirectunlocked--;
2135 pSiS->xv_sisdirectunlocked = 0;
2137 } else if(attribute == pSiS->xv_SVF) {
2141 if(pSiS->xv_sisdirectunlocked) {
2143 SISUpdateVideoParms(pSiS, pPriv);
2145 } else if(attribute == pSiS->xv_CT1) {
2149 if(pSiS->xv_sisdirectunlocked) {
2151 SISUpdateVideoParms(pSiS, pPriv);
2153 } else if(attribute == pSiS->xv_RDT) {
2157 if(pSiS->xv_sisdirectunlocked) {
2160 } else if(attribute == pSiS->xv_TAF) {
2161 if(pSiS->xv_sisdirectunlocked) {
2164 } else if(attribute == pSiS->xv_TSA) {
2165 if(pSiS->xv_sisdirectunlocked) {
2168 } else if(attribute == pSiS->xv_TEE) {
2169 if(pSiS->xv_sisdirectunlocked) {
2172 } else if(attribute == pSiS->xv_CFI) {
2173 if(pSiS->xv_sisdirectunlocked) {
2176 } else if(attribute == pSiS->xv_YFI) {
2177 if(pSiS->xv_sisdirectunlocked) {
2180 } else if(attribute == pSiS->xv_COC) {
2181 if(pSiS->xv_sisdirectunlocked) {
2184 } else if(attribute == pSiS->xv_COF) {
2185 if(pSiS->xv_sisdirectunlocked) {
2188 } else if(attribute == pSiS->xv_TCO) {
2189 if(pSiS->xv_sisdirectunlocked) {
2192 } else if(attribute == pSiS->xv_TTE) {
2193 if(pSiS->xv_sisdirectunlocked) {
2196 } else if(attribute == pSiS->xv_TCF) {
2197 if(pSiS->xv_sisdirectunlocked) {
2200 } else if(attribute == pSiS->xv_TLF) {
2201 if(pSiS->xv_sisdirectunlocked) {
2204 } else if(attribute == pSiS->xv_TCC) {
2205 if(pSiS->xv_sisdirectunlocked) {
2208 } else if(attribute == pSiS->xv_OVR) {
2209 if(pSiS->xv_sisdirectunlocked) {
2210 pSiS->UseCHOverScan = -1;
2211 pSiS->OptTVSOver = FALSE;
2213 if(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTSOVER) {
2214 pSiS->OptTVSOver = TRUE;
2216 pSiS->UseCHOverScan = 1;
2217 } else if(value == 2) pSiS->UseCHOverScan = 1;
2218 else if(value == 1) pSiS->UseCHOverScan = 0;
2220 } else if(attribute == pSiS->xv_CMD) {
2221 if(pSiS->xv_sisdirectunlocked) {
2223 pSiS->xv_sd_result = (value & 0xffffff00);
2227 pSiS->xv_sd_result |= (result & 0xff);
2229 } else if(attribute == pSiS->xv_SGA) {
2230 if(pSiS->xv_sisdirectunlocked) {
2231 Bool backup = pSiS->XvGamma;
2232 Bool backup2 = pSiS->CRT2SepGamma;
2233 pSiS->CRT1gamma = (value & 0x01) ? TRUE : FALSE;
2234 pSiS->CRT2gamma = (value & 0x02) ? TRUE : FALSE;
2237 pSiSEnt->CRT1gamma = pSiS->CRT1gamma;
2238 pSiSEnt->CRT2gamma = pSiS->CRT2gamma;
2241 if(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTSGRCRT2) {
2242 pSiS->CRT2SepGamma = (value & 0x08) ? TRUE : FALSE;
2243 if(pSiS->CRT2SepGamma != backup2) {
2244 if(pSiS->CRT2SepGamma) {
2266 } else pSiS->CRT2SepGamma = FALSE;
2267 pSiS->XvGamma = (value & 0x04) ? TRUE : FALSE;
2268 if(pSiS->VGAEngine == SIS_315_VGA) {
2269 if(backup != pSiS->XvGamma) {
2270 SiSUpdateXvGamma(pSiS, pPriv);
2274 } else if(attribute == pSiS->xv_TXS) {
2276 if(pSiS->xv_sisdirectunlocked) {
2279 } else if(attribute == pSiS->xv_TYS) {
2281 if(pSiS->xv_sisdirectunlocked) {
2284 } else if(attribute == pSiS->xv_BRR) {
2286 if(pSiS->xv_sisdirectunlocked) {
2287 pSiS->GammaBriR = value;
2289 } else if(attribute == pSiS->xv_BRG) {
2291 if(pSiS->xv_sisdirectunlocked) {
2292 pSiS->GammaBriG = value;
2294 } else if(attribute == pSiS->xv_BRB) {
2296 if(pSiS->xv_sisdirectunlocked) {
2297 pSiS->GammaBriB = value;
2299 } else if(attribute == pSiS->xv_PBR) {
2301 } else if(attribute == pSiS->xv_PBG) {
2303 } else if(attribute == pSiS->xv_PBB) {
2305 } else if(attribute == pSiS->xv_BRR2) {
2307 if(pSiS->xv_sisdirectunlocked) {
2312 } else if(attribute == pSiS->xv_BRG2) {
2314 if(pSiS->xv_sisdirectunlocked) {
2319 } else if(attribute == pSiS->xv_BRB2) {
2321 if(pSiS->xv_sisdirectunlocked) {
2326 } else if(attribute == pSiS->xv_PBR2) {
2328 } else if(attribute == pSiS->xv_PBG2) {
2330 } else if(attribute == pSiS->xv_PBB2) {
2332 } else if(attribute == pSiS->xv_GARC2) {
2334 if(pSiS->xv_sisdirectunlocked) {
2335 pSiS->GammaR2 = (float)value / (float)1000;
2338 } else if(attribute == pSiS->xv_GAGC2) {
2340 if(pSiS->xv_sisdirectunlocked) {
2341 pSiS->GammaG2 = (float)value / (float)1000;
2344 } else if(attribute == pSiS->xv_GABC2) {
2346 if(pSiS->xv_sisdirectunlocked) {
2347 pSiS->GammaB2 = (float)value / (float)1000;
2350 } else if(attribute == pSiS->xv_BRRC2) {
2352 if(pSiS->xv_sisdirectunlocked) {
2353 pSiS->GammaBriR2 = value;
2356 } else if(attribute == pSiS->xv_BRGC2) {
2358 if(pSiS->xv_sisdirectunlocked) {
2359 pSiS->GammaBriG2 = value;
2362 } else if(attribute == pSiS->xv_BRBC2) {
2364 if(pSiS->xv_sisdirectunlocked) {
2365 pSiS->GammaBriB2 = value;
2368 } else if(attribute == pSiS->xv_PBRC2) {
2370 } else if(attribute == pSiS->xv_PBGC2) {
2372 } else if(attribute == pSiS->xv_PBBC2) {
2374 } else if(attribute == pSiS->xv_SHC) {
2375 if(pSiS->xv_sisdirectunlocked) {
2376 Bool VisibleBackup = pSiS->HWCursorIsVisible;
2377 pSiS->HideHWCursor = value ? TRUE : FALSE;
2378 if(pSiS->CursorInfoPtr) {
2381 (pSiS->CursorInfoPtr->HideCursor)(pScrn);
2383 (pSiS->CursorInfoPtr->ShowCursor)(pScrn);
2386 pSiS->HWCursorIsVisible = VisibleBackup;
2389 } else if(attribute == pSiS->xv_PMD) {
2390 if(pSiS->xv_sisdirectunlocked) {
2391 if(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTSCALE) {
2392 if(value & 0x01) pSiS->SiS_Pr->UsePanelScaler = -1;
2393 else if(value & 0x02) pSiS->SiS_Pr->UsePanelScaler = 1;
2394 else pSiS->SiS_Pr->UsePanelScaler = 0;
2395 if(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTCENTER) {
2396 if(value & 0x04) pSiS->SiS_Pr->CenterScreen = -1;
2397 else if(value & 0x08) pSiS->SiS_Pr->CenterScreen = 1;
2398 else pSiS->SiS_Pr->CenterScreen = 0;
2403 } else if(attribute == pSiS->xv_STR) {
2431 SISPtr pSiS = SISPTR(pScrn);
2433 SISEntPtr pSiSEnt = pSiS->entityPrivate;;
2436 if(attribute == pSiS->xv_QVF) {
2437 *value = pSiS->VBFlags;
2438 } else if(attribute == pSiS->xv_GDV) {
2440 } else if(attribute == pSiS->xv_GHI) {
2441 *value = (pSiS->ChipFlags & 0xffff) | (pSiS->ChipType << 16) | (pSiS->ChipRev << 24);
2442 } else if(attribute == pSiS->xv_GBI) {
2443 *value = (pSiS->PciBus << 16) | (pSiS->PciDevice << 8) | pSiS->PciFunc;
2444 } else if(attribute == pSiS->xv_QVV) {
2446 } else if(attribute == pSiS->xv_QDD) {
2447 *value = pSiS->detectedCRT2Devices;
2448 } else if(attribute == pSiS->xv_CT1) {
2449 *value = pSiS->CRT1isoff ? 0 : 1;
2450 } else if(attribute == pSiS->xv_GSF) {
2451 *value = pSiS->SiS_SD_Flags;
2452 } else if(attribute == pSiS->xv_GSF2) {
2453 *value = pSiS->SiS_SD2_Flags;
2454 } else if(attribute == pSiS->xv_USD) {
2455 *value = pSiS->xv_sisdirectunlocked;
2456 } else if(attribute == pSiS->xv_TAF) {
2458 } else if(attribute == pSiS->xv_TSA) {
2460 } else if(attribute == pSiS->xv_TEE) {
2462 } else if(attribute == pSiS->xv_CFI) {
2464 } else if(attribute == pSiS->xv_YFI) {
2466 } else if(attribute == pSiS->xv_COC) {
2468 } else if(attribute == pSiS->xv_COF) {
2470 } else if(attribute == pSiS->xv_TCO) {
2472 } else if(attribute == pSiS->xv_TTE) {
2474 } else if(attribute == pSiS->xv_TCF) {
2476 } else if(attribute == pSiS->xv_TLF) {
2478 } else if(attribute == pSiS->xv_TCC) {
2480 } else if(attribute == pSiS->xv_CMDR) {
2481 *value = pSiS->xv_sd_result;
2482 } else if(attribute == pSiS->xv_OVR) {
2485 if(pSiS->OptTVSOver == 1) *value = 3;
2486 else if(pSiS->UseCHOverScan == 1) *value = 2;
2487 else if(pSiS->UseCHOverScan == 0) *value = 1;
2488 } else if(attribute == pSiS->xv_SGA) {
2496 if(pSiS->CRT1gamma) *value |= 0x01;
2497 if(pSiS->CRT2gamma) *value |= 0x02;
2498 if(pSiS->CRT2SepGamma) *value |= 0x08;
2502 if(pSiS->XvGamma) *value |= 0x04;
2503 } else if(attribute == pSiS->xv_TXS) {
2505 } else if(attribute == pSiS->xv_TYS) {
2507 } else if(attribute == pSiS->xv_GSS) {
2509 } else if(attribute == pSiS->xv_BRR) {
2510 *value = pSiS->GammaBriR;
2511 } else if(attribute == pSiS->xv_BRG) {
2512 *value = pSiS->GammaBriG;
2513 } else if(attribute == pSiS->xv_BRB) {
2514 *value = pSiS->GammaBriB;
2515 } else if(attribute == pSiS->xv_PBR) {
2517 } else if(attribute == pSiS->xv_PBG) {
2519 } else if(attribute == pSiS->xv_PBB) {
2521 } else if(attribute == pSiS->xv_BRR2) {
2526 *value = pSiS->GammaBriR;
2527 } else if(attribute == pSiS->xv_BRG2) {
2532 *value = pSiS->GammaBriG;
2533 } else if(attribute == pSiS->xv_BRB2) {
2538 *value = pSiS->GammaBriB;
2539 } else if(attribute == pSiS->xv_PBR2) {
2541 } else if(attribute == pSiS->xv_PBG2) {
2543 } else if(attribute == pSiS->xv_PBB2) {
2545 } else if(attribute == pSiS->xv_GARC2) {
2546 *value = (int)(pSiS->GammaR2 * 1000);
2547 } else if(attribute == pSiS->xv_GAGC2) {
2548 *value = (int)(pSiS->GammaG2 * 1000);
2549 } else if(attribute == pSiS->xv_GABC2) {
2550 *value = (int)(pSiS->GammaB2 * 1000);
2551 } else if(attribute == pSiS->xv_BRRC2) {
2552 *value = pSiS->GammaBriR2;
2553 } else if(attribute == pSiS->xv_BRGC2) {
2554 *value = pSiS->GammaBriG2;
2555 } else if(attribute == pSiS->xv_BRBC2) {
2556 *value = pSiS->GammaBriB2;
2557 } else if(attribute == pSiS->xv_PBRC2) {
2559 } else if(attribute == pSiS->xv_PBGC2) {
2561 } else if(attribute == pSiS->xv_PBBC2) {
2563 } else if(attribute == pSiS->xv_SHC) {
2564 *value = pSiS->HideHWCursor ? 1 : 0;
2565 } else if(attribute == pSiS->xv_PMD) {
2567 if(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTSCALE) {
2568 switch(pSiS->SiS_Pr->UsePanelScaler) {
2572 if(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTCENTER) {
2573 switch(pSiS->SiS_Pr->CenterScreen) {