Lines Matching refs:pTDFX

374 	TDFXPtr pTDFX;
390 pTDFX = TDFXGetRec(pScrn);
391 if (pTDFX == NULL) {
395 pTDFX->initDone = FALSE;
396 pTDFX->match_id = (enum tdfx_chips) match_data;
397 pTDFX->pEnt = xf86GetEntityInfo(entity_num);
398 pTDFX->PciInfo[0] = dev;
399 pTDFX->numChips = 1;
400 pTDFX->Primary = xf86IsPrimaryPci(dev);
402 pTDFX->PIOBase[0] = dev->regions[2].base_addr;
404 "PIO base = 0x%lx\n", pTDFX->PIOBase[0]);
479 TDFXPtr pTDFX;
483 pTDFX = TDFXPTR(pScrn);
486 if (pTDFX->PIOBase[0]) {
498 dramInit1_strap = pTDFX->readLong(pTDFX, DRAMINIT1);
515 pTDFX->readLong(pTDFX, DRAMINIT1), (unsigned long)dramInit1);
525 if (pTDFX->ChipType != PCI_CHIP_BANSHEE)
526 pTDFX->writeLong(pTDFX, DRAMINIT1, dramInit1);
529 dramInit0_strap = pTDFX->readLong(pTDFX, DRAMINIT0);
531 if (pTDFX->ChipType<=PCI_CHIP_VOODOO3) { /* Banshee/V3 */
562 miscInit1 = pTDFX->readLong(pTDFX, MISCINIT1);
567 pTDFX->writeLong(pTDFX, MISCINIT1, miscInit1);
603 TDFXPtr pTDFX;
606 pTDFX=TDFXPTR(pScrn);
607 pTDFX->numChips=0;
608 pTDFX->ChipType=match->chipType;
612 pTDFX->PciTag[pTDFX->numChips] = pciTag((*ppPci)->bus,
615 pTDFX->PIOBase[pTDFX->numChips] =
617 pTDFX->numChips++;
621 "TDFXFindChips: found %d chip(s)\n", pTDFX->numChips);
623 pTDFX->numChips=1;
630 TDFXPtr pTDFX = TDFXPTR(pScrn);
645 "TDFXInitChips: numchips = %d\n", pTDFX->numChips);
672 if (pTDFX->numChips == 1) {
676 pTDFX->MMIOAddr[0] = mem0base & 0xffffff00;
677 pTDFX->LinearAddr[0] = mem1base & 0xffffff00;
680 0, pTDFX->MMIOAddr[0]);
683 0, pTDFX->LinearAddr[0]);
685 for (i = 0; i < pTDFX->numChips; i++) {
689 v=pciReadWord(pTDFX->PciTag[i], CFG_PCI_COMMAND);
691 pciWriteWord(pTDFX->PciTag[i], CFG_PCI_COMMAND, v | 0x3);
693 pciWriteWord(pTDFX->PciTag[i], CFG_PCI_COMMAND, v | 0x2);
696 pTDFX->MMIOAddr[i] = mem0base + (i * mem0size);
700 i, pTDFX->MMIOAddr[i]);
702 PCI_WRITE_LONG(pTDFX->MMIOAddr[i], CFG_MEM0BASE, i);
704 pTDFX->MMIOAddr[i] &= 0xFFFFFF00;
705 pTDFX->LinearAddr[i] = mem1base + (i * mem1size);
707 PCI_WRITE_LONG(pTDFX->LinearAddr[i], CFG_MEM1BASE, i);
711 i, pTDFX->LinearAddr[i]);
712 pTDFX->LinearAddr[i] &= 0xFFFFFF00;
723 TDFXPtr pTDFX= b->DriverPrivate.ptr;
726 reg = pTDFX->readLong(pTDFX, VIDSERIALPARALLELPORT);
730 pTDFX->writeLong(pTDFX, VIDSERIALPARALLELPORT, reg);
736 TDFXPtr pTDFX = b->DriverPrivate.ptr;
739 reg = pTDFX->readLong(pTDFX, VIDSERIALPARALLELPORT);
746 TDFXPtr pTDFX = TDFXPTR(pScrn);
748 if (!(pTDFX->pI2CBus = xf86CreateI2CBusRec()))
755 pTDFX->pI2CBus->BusName = "DDC";
756 pTDFX->pI2CBus->scrnIndex = pScrn->scrnIndex;
757 pTDFX->pI2CBus->I2CPutBits = TDFXPutBits;
758 pTDFX->pI2CBus->I2CGetBits = TDFXGetBits;
759 pTDFX->pI2CBus->DriverPrivate.ptr = pTDFX;
762 pTDFX->pI2CBus->ByteTimeout = 2200; /* VESA DDC spec 3 p. 43 (+10 %) */
763 pTDFX->pI2CBus->StartTimeout = 550;
764 pTDFX->pI2CBus->BitTimeout = 40;
765 pTDFX->pI2CBus->ByteTimeout = 40;
766 pTDFX->pI2CBus->AcknTimeout = 40;
768 if (!xf86I2CBusInit(pTDFX->pI2CBus)) {
777 TDFXPtr pTDFX = TDFXPTR(pScrn);
781 reg = pTDFX->readLong(pTDFX, VIDSERIALPARALLELPORT);
782 pTDFX->writeLong(pTDFX, VIDSERIALPARALLELPORT, reg | VSP_ENABLE_IIC0);
784 pMon = xf86DoEDID_DDC2(XF86_SCRN_ARG(pScrn), pTDFX->pI2CBus);
789 pTDFX->writeLong(pTDFX, VIDSERIALPARALLELPORT, reg);
804 TDFXPtr pTDFX;
823 pTDFX = TDFXGetRec(pScrn);
824 if (pTDFX == NULL) {
829 pTDFX->initDone=FALSE;
830 pTDFX->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
832 pTDFX = TDFXPTR(pScrn);
837 TDFXProbeDDC(pScrn, pTDFX->pEnt->index);
844 if (pTDFX->pEnt->location.type != BUS_PCI) return FALSE;
860 pInt = xf86InitInt10(pTDFX->pEnt->index);
877 match = pTDFX->PciInfo[0];
878 pTDFX->ChipType = DEVICE_ID(match);
880 match=pTDFX->PciInfo=xf86GetPciInfoForEntity(pTDFX->pEnt->index);
882 pTDFX->Primary = xf86IsPrimaryPci(pTDFX->PciInfo);
886 if (xf86RegisterResources(pTDFX->pEnt->index, NULL, ResExclusive)) {
895 xf86SetOperatingState(resVgaIo, pTDFX->pEnt->index, ResDisableOpr);
898 xf86SetOperatingState(resVgaMem, pTDFX->pEnt->index, ResUnusedOpr);
903 if (pTDFX->usePIO) {
951 pTDFX->cpp = pScrn->bitsPerPixel/8;
955 if (!(pTDFX->Options = malloc(sizeof(TDFXOptions))))
957 memcpy(pTDFX->Options, TDFXOptions, sizeof(TDFXOptions));
958 xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, pTDFX->Options);
964 if (pTDFX->pEnt->device->chipset && *pTDFX->pEnt->device->chipset) {
965 pScrn->chipset = pTDFX->pEnt->device->chipset;
967 } else if (pTDFX->pEnt->device->chipID >= 0) {
968 pScrn->chipset = (char *)xf86TokenToString(TDFXChipsets, pTDFX->pEnt->device->chipID);
971 pTDFX->pEnt->device->chipID);
977 if (pTDFX->pEnt->device->chipRev >= 0) {
979 pTDFX->pEnt->device->chipRev);
984 if (pTDFX->pEnt->device->MemBase != 0) {
985 pTDFX->LinearAddr[0] = pTDFX->pEnt->device->MemBase;
989 pTDFX->LinearAddr[0] = PCI_MEM_BASE(match, 1);
999 (unsigned long)pTDFX->LinearAddr[0]);
1001 if (pTDFX->pEnt->device->IOBase != 0) {
1002 pTDFX->MMIOAddr[0] = pTDFX->pEnt->device->IOBase;
1006 pTDFX->MMIOAddr[0] = PCI_MEM_BASE(match, 0);
1016 (unsigned long)pTDFX->MMIOAddr[0]);
1025 (unsigned long)pTDFX->PIOBase[0]);
1028 TDFXSetPIOAccess(pTDFX);
1033 if (pTDFX->pEnt->device->videoRam) {
1034 pScrn->videoRam = pTDFX->pEnt->device->videoRam;
1041 pTDFX->FbMapSize = pScrn->videoRam*1024*2;
1043 pScrn->videoRam, pTDFX->FbMapSize/1024);
1054 pTDFX->MaxClock = 0;
1055 if (pTDFX->pEnt->device->dacSpeeds[0]) {
1058 pTDFX->MaxClock = pTDFX->pEnt->device->dacSpeeds[DAC_BPP8];
1061 pTDFX->MaxClock = pTDFX->pEnt->device->dacSpeeds[DAC_BPP16];
1064 pTDFX->MaxClock = pTDFX->pEnt->device->dacSpeeds[DAC_BPP24];
1067 pTDFX->MaxClock = pTDFX->pEnt->device->dacSpeeds[DAC_BPP32];
1070 if (!pTDFX->MaxClock)
1071 pTDFX->MaxClock = pTDFX->pEnt->device->dacSpeeds[0];
1075 pTDFX->MaxClock = MaxClocks[pTDFX->match_id];
1077 switch (pTDFX->ChipType) {
1079 pTDFX->MaxClock = 270000;
1085 pTDFX->MaxClock = 300000;
1088 pTDFX->MaxClock = 350000;
1091 pTDFX->MaxClock = 300000;
1097 pTDFX->MaxClock = 350000;
1105 clockRanges->maxClock=pTDFX->MaxClock;
1107 switch (pTDFX->ChipType) {
1135 pTDFX->NoAccel = xf86ReturnOptValBool(pTDFX->Options, OPTION_NOACCEL, FALSE);
1136 if (!pTDFX->NoAccel) {
1139 pTDFX->NoAccel = TRUE;
1143 if (!xf86GetOptValBool(pTDFX->Options, OPTION_SHOWCACHE, &(pTDFX->ShowCache))) {
1144 xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "ShowCache %s\n", pTDFX->ShowCache ? "Enabled" : "Disabled");
1146 pTDFX->ShowCache = FALSE;
1149 if (xf86GetOptValBool(pTDFX->Options, OPTION_TEXTURED_VIDEO, &(pTDFX->TextureXvideo))) {
1150 xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Texture Xvideo Adaptor %s\n", pTDFX->TextureXvideo ? "Enabled" : "Disabled");
1152 pTDFX->TextureXvideo = FALSE;
1155 if (xf86GetOptValInteger(pTDFX->Options, OPTION_VIDEO_KEY, &(pTDFX->videoKey))) {
1156 xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "video key set to 0x%x\n", pTDFX->videoKey);
1158 xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "video key default 0x%x\n", pTDFX->videoKey = 0x1E);
1161 if (!xf86ReturnOptValBool(pTDFX->Options, OPTION_SW_CURSOR, FALSE)) {
1190 vbeInfoPtr pVbe = VBEInit(NULL,pTDFX->pEnt->index);
1228 if (xf86ReturnOptValBool(pTDFX->Options, OPTION_USE_PIO, FALSE)) {
1229 pTDFX->usePIO=TRUE;
1233 pTDFX->ModeReg.miscinit0 = pTDFX->readLong(pTDFX, MISCINIT0);
1234 pTDFX->SavedReg.miscinit0 = pTDFX->ModeReg.miscinit0;
1238 pTDFX->writeFifo = TDFXWriteFifo_8;
1239 pTDFX->ModeReg.miscinit0 &= ~BIT(30); /* LFB byte swizzle */
1240 pTDFX->ModeReg.miscinit0 &= ~BIT(31); /* LFB word swizzle */
1244 pTDFX->writeFifo = TDFXWriteFifo_16;
1245 pTDFX->ModeReg.miscinit0 |= BIT(30); /* LFB byte swizzle */
1246 pTDFX->ModeReg.miscinit0 |= BIT(31); /* LFB word swizzle */
1250 pTDFX->writeFifo = TDFXWriteFifo_24;
1251 pTDFX->ModeReg.miscinit0 |= BIT(30); /* LFB byte swizzle */
1252 pTDFX->ModeReg.miscinit0 &= ~BIT(31); /* LFB word swizzle */
1258 pTDFX->writeLong(pTDFX, MISCINIT0, pTDFX->ModeReg.miscinit0);
1263 if (xf86ReturnOptValBool(pTDFX->Options, OPTION_DRI, FALSE)) {
1274 TDFXPtr pTDFX = TDFXPTR(pScrn);
1287 for (i = 0; i < pTDFX->numChips; i++) {
1288 err = pci_device_map_range(pTDFX->PciInfo[i],
1289 pTDFX->MMIOAddr[i],
1292 & pTDFX->MMIOBase[i]);
1302 err = pci_device_map_range(pTDFX->PciInfo[0],
1303 pTDFX->LinearAddr[0],
1304 pTDFX->FbMapSize,
1306 & pTDFX->FbBase);
1313 for (i=0; i<pTDFX->numChips; i++) {
1314 pTDFX->MMIOBase[i] = xf86MapPciMem(pScrn->scrnIndex, mmioFlags,
1315 pTDFX->PciTag[i],
1316 pTDFX->MMIOAddr[i],
1319 if (!pTDFX->MMIOBase[i]) return FALSE;
1322 pTDFX->FbBase = xf86MapPciMem(pScrn->scrnIndex, VIDMEM_FRAMEBUFFER,
1323 pTDFX->PciTag[0],
1324 pTDFX->LinearAddr[0],
1325 pTDFX->FbMapSize);
1326 if (!pTDFX->FbBase) return FALSE;
1335 TDFXPtr pTDFX;
1339 pTDFX = TDFXPTR(pScrn);
1342 pci_device_unmap_range(pTDFX->PciInfo[0],
1343 pTDFX->FbBase,
1344 pTDFX->FbMapSize);
1346 for (i = 0; i < pTDFX->numChips; i++) {
1347 pci_device_unmap_range(pTDFX->PciInfo[i],
1348 pTDFX->MMIOBase[i],
1352 (void) memset(pTDFX->MMIOBase, 0, sizeof(pTDFX->MMIOBase));
1353 pTDFX->FbBase = NULL;
1355 for (i=0; i<pTDFX->numChips; i++) {
1356 xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pTDFX->MMIOBase[i],
1358 pTDFX->MMIOBase[i]=0;
1361 xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pTDFX->FbBase, pTDFX->FbMapSize);
1362 pTDFX->FbBase = 0;
1372 TDFXPtr pTDFX;
1377 pTDFX = TDFXPTR(pScrn);
1399 ErrorF("VidCfg = %x versus %x\n", pTDFX->readLong(pTDFX, VIDPROCCFG), regs->vidcfg);
1400 ErrorF("DACmode = %x versus %x\n", pTDFX->readLong(pTDFX, DACMODE), regs->dacmode);
1401 ErrorF("Vgainit0 = %x versus %x\n", pTDFX->readLong(pTDFX, VGAINIT0), regs->vgainit0);
1402 ErrorF("Vgainit1 = %x versus %x\n", pTDFX->readLong(pTDFX, VGAINIT1), regs->vgainit1);
1403 ErrorF("Miscinit0 = %x versus %x\n", pTDFX->readLong(pTDFX, MISCINIT0), regs->miscinit0);
1404 ErrorF("Miscinit1 = %x versus %x\n", pTDFX->readLong(pTDFX, MISCINIT1), regs->miscinit1);
1405 ErrorF("DramInit0 = %x\n", pTDFX->readLong(pTDFX, DRAMINIT0));
1406 ErrorF("DramInit1 = %x\n", pTDFX->readLong(pTDFX, DRAMINIT1));
1407 ErrorF("VidPLL = %x versus %x\n", pTDFX->readLong(pTDFX, PLLCTRL0), regs->vidpll);
1408 ErrorF("screensize = %x versus %x\n", pTDFX->readLong(pTDFX, VIDSCREENSIZE), regs->screensize);
1409 ErrorF("stride = %x versus %x\n", pTDFX->readLong(pTDFX, VIDDESKTOPOVERLAYSTRIDE), regs->stride);
1410 ErrorF("startaddr = %x versus %x\n", pTDFX->readLong(pTDFX, VIDDESKTOPSTARTADDR), regs->startaddr);
1411 ErrorF("Input Status 0 = %x\n", pTDFX->readLong(pTDFX, 0xc2));
1412 ErrorF("Input Status 1 = %x\n", pTDFX->readLong(pTDFX, 0xda));
1413 ErrorF("2D Status = %x\n", pTDFX->readLong(pTDFX, SST_2D_OFFSET));
1414 ErrorF("3D Status = %x\n", pTDFX->readLong(pTDFX, SST_3D_OFFSET));
1429 TDFXPtr pTDFX;
1434 pTDFX = TDFXPTR(pScrn);
1441 if (saveFonts && pTDFX->Primary) {
1443 dummy = pTDFX->readLong(pTDFX, VGAINIT0);
1444 pTDFX->writeLong(pTDFX, VGAINIT0, dummy & ~SST_VGA0_LEGACY_DECODE);
1446 pTDFX->writeLong(pTDFX, VGAINIT0, dummy);
1452 tdfxReg->miscinit1=pTDFX->readLong(pTDFX, MISCINIT1);
1453 tdfxReg->vidcfg=pTDFX->readLong(pTDFX, VIDPROCCFG);
1454 tdfxReg->vidpll=pTDFX->readLong(pTDFX, PLLCTRL0);
1455 tdfxReg->dacmode=pTDFX->readLong(pTDFX, DACMODE);
1456 tdfxReg->screensize=pTDFX->readLong(pTDFX, VIDSCREENSIZE);
1457 tdfxReg->stride=pTDFX->readLong(pTDFX, VIDDESKTOPOVERLAYSTRIDE);
1458 tdfxReg->cursloc=pTDFX->readLong(pTDFX, HWCURPATADDR);
1459 tdfxReg->startaddr=pTDFX->readLong(pTDFX, VIDDESKTOPSTARTADDR);
1460 tdfxReg->clip0min=TDFXReadLongMMIO(pTDFX, SST_2D_CLIP0MIN);
1461 tdfxReg->clip0max=TDFXReadLongMMIO(pTDFX, SST_2D_CLIP0MAX);
1462 tdfxReg->clip1min=TDFXReadLongMMIO(pTDFX, SST_2D_CLIP1MIN);
1463 tdfxReg->clip1max=TDFXReadLongMMIO(pTDFX, SST_2D_CLIP1MAX);
1464 tdfxReg->srcbaseaddr=TDFXReadLongMMIO(pTDFX, SST_2D_SRCBASEADDR);
1465 tdfxReg->dstbaseaddr=TDFXReadLongMMIO(pTDFX, SST_2D_DSTBASEADDR);
1469 TDFXWriteLongMMIO(pTDFX, DACADDR, i);
1470 dummy=TDFXReadLongMMIO(pTDFX, DACADDR);
1472 tdfxReg->dactable[i]=TDFXReadLongMMIO(pTDFX, DACDATA);
1481 TDFXPtr pTDFX;
1485 pTDFX = TDFXPTR(pScrn);
1487 pTDFX->SavedReg.vgainit0=pTDFX->readLong(pTDFX, VGAINIT0);
1489 pTDFX->SavedReg.vgainit1=pTDFX->readLong(pTDFX, VGAINIT1);
1491 pTDFX->writeLong(pTDFX, VGAINIT0, pTDFX->ModeReg.vgainit0);
1493 pTDFX->writeLong(pTDFX, VGAINIT1, pTDFX->ModeReg.vgainit1);
1497 DoSave(pScrn, &hwp->SavedReg, &pTDFX->SavedReg, TRUE);
1503 TDFXPtr pTDFX;
1508 pTDFX = TDFXPTR(pScrn);
1511 pTDFX->sync(pScrn);
1515 if (restoreFonts && pTDFX->Primary) {
1517 dummy = pTDFX->readLong(pTDFX, VGAINIT0);
1518 pTDFX->writeLong(pTDFX, VGAINIT0, dummy & ~SST_VGA0_LEGACY_DECODE);
1520 pTDFX->writeLong(pTDFX, VGAINIT0, dummy);
1526 pTDFX->writeLong(pTDFX, PLLCTRL0, tdfxReg->vidpll);
1527 pTDFX->writeLong(pTDFX, DACMODE, tdfxReg->dacmode);
1528 pTDFX->writeLong(pTDFX, VIDDESKTOPOVERLAYSTRIDE, tdfxReg->stride);
1529 pTDFX->writeLong(pTDFX, HWCURPATADDR, tdfxReg->cursloc);
1530 pTDFX->writeLong(pTDFX, VIDSCREENSIZE, tdfxReg->screensize);
1531 pTDFX->writeLong(pTDFX, VIDDESKTOPSTARTADDR, tdfxReg->startaddr);
1532 TDFXWriteLongMMIO(pTDFX, SST_2D_CLIP0MIN, tdfxReg->clip0min);
1533 TDFXWriteLongMMIO(pTDFX, SST_2D_CLIP0MAX, tdfxReg->clip0max);
1534 TDFXWriteLongMMIO(pTDFX, SST_2D_CLIP1MIN, tdfxReg->clip1min);
1535 TDFXWriteLongMMIO(pTDFX, SST_2D_CLIP1MAX, tdfxReg->clip1max);
1537 pTDFX->writeLong(pTDFX, MISCINIT0, tdfxReg->miscinit0);
1539 pTDFX->writeLong(pTDFX, VIDPROCCFG, tdfxReg->vidcfg);
1540 TDFXWriteLongMMIO(pTDFX, SST_2D_SRCBASEADDR, tdfxReg->srcbaseaddr);
1541 TDFXWriteLongMMIO(pTDFX, SST_2D_DSTBASEADDR, tdfxReg->dstbaseaddr);
1545 TDFXWriteLongMMIO(pTDFX, DACADDR, i);
1546 dummy=TDFXReadLongMMIO(pTDFX, DACADDR);
1550 TDFXWriteLongMMIO(pTDFX, DACDATA, tdfxReg->dactable[i]);
1551 dummy=TDFXReadLongMMIO(pTDFX, DACDATA);
1554 pTDFX->writeLong(pTDFX, VGAINIT0, tdfxReg->vgainit0);
1556 pTDFX->writeLong(pTDFX, VGAINIT1, tdfxReg->vgainit1);
1557 pTDFX->writeLong(pTDFX, MISCINIT1, tdfxReg->miscinit1);
1561 pTDFX->sync(pScrn);
1568 TDFXPtr pTDFX;
1572 pTDFX = TDFXPTR(pScrn);
1574 DoRestore(pScrn, &hwp->SavedReg, &pTDFX->SavedReg, TRUE);
1630 TDFXPtr pTDFX;
1635 pTDFX = TDFXPTR(pScrn);
1636 tdfxReg = &pTDFX->ModeReg;
1641 if (freq>pTDFX->MaxClock) {
1643 freq=pTDFX->MaxClock;
1657 TDFXPtr pTDFX;
1662 pTDFX=TDFXPTR();
1665 pTDFX->writeLong(pTDFX, PLLCTRL1, tdfxReg->mempll);
1673 TDFXPtr pTDFX;
1678 pTDFX=TDFXPTR();
1680 if (pTDFX->chipType==PCI_CHIP_BANSHEE)
1684 pTDFX->writeLong(pTDFX, PLLCTRL2, tdfxReg->gfxpll);
1695 TDFXPtr pTDFX;
1701 pTDFX=TDFXPTR(pScrn);
1703 if (pTDFX->initDone)
1706 if (pTDFX->Primary) {
1707 uint[0] = pTDFX->readLong(pTDFX, PCIINIT0);
1708 uint[1] = pTDFX->readLong(pTDFX, MISCINIT0);
1709 uint[2] = pTDFX->readLong(pTDFX, MISCINIT1);
1710 uint[3] = pTDFX->readLong(pTDFX, DRAMINIT0);
1711 uint[4] = pTDFX->readLong(pTDFX, DRAMINIT1);
1712 uint[5] = pTDFX->readLong(pTDFX, AGPINIT);
1713 uint[6] = pTDFX->readLong(pTDFX, PLLCTRL1);
1714 uint[7] = pTDFX->readLong(pTDFX, PLLCTRL2);
1727 pci_device_read_rom(pTDFX->PciInfo[0], bios);
1729 if (!xf86ReadPciBIOS(0, pTDFX->PciTag[0], 1, bios, T_B_SIZE)) {
1768 pTDFX->writeLong(pTDFX, PCIINIT0, uint[0]);
1769 pTDFX->writeLong(pTDFX, MISCINIT0, uint[1]);
1770 pTDFX->writeLong(pTDFX, MISCINIT1, uint[2]);
1771 pTDFX->writeLong(pTDFX, DRAMINIT0, uint[3]);
1772 pTDFX->writeLong(pTDFX, DRAMINIT1, uint[4]);
1773 pTDFX->writeLong(pTDFX, AGPINIT, uint[5]);
1774 pTDFX->writeLong(pTDFX, PLLCTRL1, uint[6]);
1775 pTDFX->writeLong(pTDFX, PLLCTRL2, uint[7]);
1777 pTDFX->writeLong(pTDFX, DRAMCOMMAND, uint[8]);
1781 pTDFX->writeLong(pTDFX, MISCINIT0, 0xF3);
1782 pTDFX->writeLong(pTDFX, MISCINIT0, uint[1]);
1793 TDFXPtr pTDFX;
1797 pTDFX=TDFXPTR(pScrn);
1798 if (pTDFX->initDone) return TRUE;
1799 pTDFX->initDone=TRUE;
1801 tdfxReg = &pTDFX->ModeReg;
1818 (pTDFX->cpp-1)<<SST_DESKTOP_PIXEL_FORMAT_SHIFT;
1822 tdfxReg->stride = pTDFX->stride;
1825 tdfxReg->clip0max = tdfxReg->clip1max = pTDFX->maxClip;
1832 TDFXPtr pTDFX;
1840 pTDFX = TDFXPTR(pScrn);
1841 tdfxReg = &pTDFX->ModeReg;
1889 pTDFX->cpp, mode->HDisplay, mode->VDisplay, tdfxReg->stride,
1899 TDFXPtr pTDFX;
1905 pTDFX = TDFXPTR(pScrn);
1947 if (pTDFX->directRenderingEnabled) {
1952 DoRestore(pScrn, &hwp->ModeReg, &pTDFX->ModeReg, FALSE);
1954 if (pTDFX->directRenderingEnabled) {
1965 TDFXPtr pTDFX;
1969 pTDFX = TDFXPTR(pScrn);
1979 TDFXWriteLongMMIO(pTDFX, DACADDR, j);
1980 } while (--repeat && TDFXReadLongMMIO(pTDFX, DACADDR)!=j);
1983 pTDFX->ModeReg.vidcfg |= SST_DESKTOP_CLUT_BYPASS;
1989 TDFXWriteLongMMIO(pTDFX, DACDATA, v);
1990 } while (--repeat && TDFXReadLongMMIO(pTDFX, DACDATA)!=v);
1993 pTDFX->ModeReg.vidcfg |= SST_DESKTOP_CLUT_BYPASS;
2003 TDFXPtr pTDFX;
2007 pTDFX = TDFXPTR(pScrn);
2013 TDFXWriteLongMMIO(pTDFX, DACADDR, index);
2014 } while (--repeat && TDFXReadLongMMIO(pTDFX, DACADDR)!=index);
2018 pTDFX->ModeReg.vidcfg |= SST_DESKTOP_CLUT_BYPASS;
2023 TDFXWriteLongMMIO(pTDFX, DACDATA, v);
2024 } while (--repeat && TDFXReadLongMMIO(pTDFX, DACDATA)!=v);
2028 pTDFX->ModeReg.vidcfg |= SST_DESKTOP_CLUT_BYPASS;
2101 TDFXPtr pTDFX;
2107 pTDFX = TDFXPTR(pScrn);
2109 if (pTDFX->cpp!=3) {
2111 TRUE, pTDFX->cpp);
2124 fbSize = (pScrn->virtualY + pTDFX->pixmapCacheLinesMin) * pTDFX->stride;
2132 pTDFX->depthOffset = (memRemaining - screenSizeInTiles) &~ 0xFFF;
2133 if ((pTDFX->depthOffset & (0x1 << 12)) == 0) {
2135 if (pTDFX->depthOffset > 0) {
2138 pTDFX->depthOffset,
2139 pTDFX->depthOffset - (0x1 << 12));
2142 pTDFX->depthOffset -= (0x1 << 12);
2146 pTDFX->backOffset = (pTDFX->depthOffset - screenSizeInTiles) &~ 0xFFF;
2147 if (pTDFX->backOffset & (0x1 << 12)) {
2149 if (pTDFX->backOffset > 0) {
2152 pTDFX->backOffset,
2153 pTDFX->backOffset - (0x1 << 12));
2156 pTDFX->backOffset -= (0x1 << 12);
2166 pTDFX->cursorOffset = 0;
2168 pTDFX->fifoOffset = pTDFX->cursorOffset + cursorSize;
2169 pTDFX->fifoSize = fifoSize;
2173 pTDFX->fbOffset = pTDFX->fifoOffset + pTDFX->fifoSize;
2174 pTDFX->texOffset = pTDFX->fbOffset + fbSize;
2175 if (pTDFX->depthOffset <= pTDFX->texOffset ||
2176 pTDFX->backOffset <= pTDFX->texOffset) {
2178 * pTDFX->texSize < 0 means that the DRI is disabled. pTDFX->backOffset
2183 pTDFX->texSize = -1;
2184 pTDFX->backOffset = pScrn->videoRam * 1024;
2185 pTDFX->depthOffset = -1;
2191 pTDFX->texSize = pTDFX->backOffset - pTDFX->texOffset;
2193 (float)pTDFX->texSize/1024.0/1024.0);
2200 pTDFX->cursorOffset,
2201 pTDFX->cursorOffset + cursorSize);
2204 pTDFX->fifoOffset,
2205 pTDFX->fifoOffset + pTDFX->fifoSize);
2208 pTDFX->fbOffset,
2209 pTDFX->fbOffset +
2210 (pScrn->virtualY+pTDFX->pixmapCacheLinesMin)*pTDFX->stride);
2211 if (pTDFX->texSize > 0) {
2220 pTDFX->texOffset,
2221 pTDFX->texOffset + pTDFX->texSize);
2224 pTDFX->backOffset,
2225 pTDFX->backOffset + screenSizeInTiles);
2228 pTDFX->depthOffset,
2229 pTDFX->depthOffset + screenSizeInTiles);
2236 TDFXPtr pTDFX;
2243 pTDFX = TDFXPTR(pScrn);
2247 pScrn->memPhysBase = (int)pTDFX->LinearAddr[0];
2249 if (!pTDFX->usePIO) TDFXSetMMIOAccess(pTDFX);
2256 /* hwp->PIOOffset = pTDFX->PIOBase[0] - 0x300;*/
2259 if (pTDFX->Primary) {
2264 pTDFX->stride = pScrn->displayWidth*pTDFX->cpp;
2267 pTDFX->pixmapCacheLinesMin = ((720*480*pTDFX->cpp) +
2268 pTDFX->stride - 1)/pTDFX->stride;
2270 if (pTDFX->ChipType > PCI_CHIP_VOODOO3) {
2271 if ((pTDFX->pixmapCacheLinesMin + pScrn->virtualY) > 4095)
2272 pTDFX->pixmapCacheLinesMin = 4095 - pScrn->virtualY;
2274 if ((pTDFX->pixmapCacheLinesMin + pScrn->virtualY) > 2047)
2275 pTDFX->pixmapCacheLinesMin = 2047 - pScrn->virtualY;
2280 pScrn->fbOffset = pTDFX->fbOffset;
2283 if (pTDFX->numChips>1) {
2284 if (xf86ReturnOptValBool(pTDFX->Options, OPTION_NO_SLI, FALSE)) {
2292 TDFXSetLFBConfig(pTDFX);
2295 pTDFX->syncDone=TRUE;
2301 scanlines = (pTDFX->backOffset - pTDFX->fbOffset) / pTDFX->stride;
2302 if(pTDFX->ChipType < PCI_CHIP_VOODOO4) {
2311 pTDFX->pixmapCacheLinesMax = scanlines - pScrn->virtualY;
2314 * Note, pTDFX->pixmapCacheLinesMax may be smaller than
2315 * pTDFX->pixmapCacheLinesMin when pTDFX->texSize < 0. DRI is disabled
2316 * in that case, so pTDFX->pixmapCacheLinesMin isn't used when that's true.
2320 pTDFX->pixmapCacheLinesMin, pTDFX->pixmapCacheLinesMax);
2327 pTDFX->maxClip = MemBox.x2 | (MemBox.y2 << 16);
2336 TDFXSetLFBConfig(pTDFX);
2351 if (!xf86ReturnOptValBool(pTDFX->Options, OPTION_DRI, TRUE) || pTDFX->NoAccel) {
2352 pTDFX->directRenderingEnabled = FALSE;
2353 } else if (pTDFX->texSize < 0) {
2354 pTDFX->directRenderingEnabled = FALSE;
2356 pTDFX->directRenderingEnabled = TDFXDRIScreenInit(pScreen);
2365 if (!fbScreenInit(pScreen, pTDFX->FbBase+pTDFX->fbOffset,
2401 if (!pTDFX->NoAccel) {
2413 if (!xf86ReturnOptValBool(pTDFX->Options, OPTION_SW_CURSOR, FALSE)) {
2440 pTDFX->CloseScreen = pScreen->CloseScreen;
2443 pTDFX->BlockHandler = pScreen->BlockHandler;
2452 if (pTDFX->directRenderingEnabled) {
2456 pTDFX->directRenderingEnabled = TDFXDRIFinishScreenInit(pScreen);
2458 if (pTDFX->directRenderingEnabled) {
2482 TDFXPtr pTDFX;
2486 pTDFX = TDFXPTR(pScrn);
2488 if (pTDFX->ShowCache && y && pScrn->vtSema)
2491 tdfxReg = &pTDFX->ModeReg;
2492 if(pTDFX->ShowCache && y && pScrn->vtSema)
2494 tdfxReg->startaddr = pTDFX->fbOffset+y*pTDFX->stride+(x*pTDFX->cpp);
2496 pTDFX->writeLong(pTDFX, VIDDESKTOPSTARTADDR, tdfxReg->startaddr);
2504 TDFXPtr pTDFX;
2511 pTDFX = TDFXPTR(pScrn);
2512 if (pTDFX->directRenderingEnabled) {
2526 TDFXPtr pTDFX;
2533 pTDFX = TDFXPTR(pScrn);
2534 pTDFX->sync(pScrn);
2537 if (pTDFX->directRenderingEnabled) {
2548 TDFXPtr pTDFX;
2553 pTDFX = TDFXPTR(pScrn);
2556 if (pTDFX->directRenderingEnabled) {
2558 pTDFX->directRenderingEnabled=FALSE;
2572 if (pTDFX->AccelInfoRec) XAADestroyInfoRec(pTDFX->AccelInfoRec);
2573 pTDFX->AccelInfoRec=0;
2575 if (pTDFX->DGAModes) free(pTDFX->DGAModes);
2576 pTDFX->DGAModes=0;
2577 if (pTDFX->scanlineColorExpandBuffers[0])
2578 free(pTDFX->scanlineColorExpandBuffers[0]);
2579 pTDFX->scanlineColorExpandBuffers[0]=0;
2580 if (pTDFX->scanlineColorExpandBuffers[1])
2581 free(pTDFX->scanlineColorExpandBuffers[1]);
2582 pTDFX->scanlineColorExpandBuffers[1]=0;
2583 if (pTDFX->overlayAdaptor)
2584 free(pTDFX->overlayAdaptor);
2585 pTDFX->overlayAdaptor=0;
2586 if (pTDFX->textureAdaptor)
2587 free(pTDFX->textureAdaptor);
2588 pTDFX->textureAdaptor=0;
2592 pScreen->BlockHandler = pTDFX->BlockHandler;
2593 pScreen->CloseScreen = pTDFX->CloseScreen;
2609 TDFXPtr pTDFX;
2615 pTDFX = TDFXPTR(pScrn);
2617 switch (pTDFX->ChipType) {
2683 TDFXPtr pTDFX = TDFXPTR(pScrn);
2685 pScreen->BlockHandler = pTDFX->BlockHandler;
2689 if(pTDFX->VideoTimerCallback) {
2690 (*pTDFX->VideoTimerCallback)(pScrn, currentTime.milliseconds);
2697 TDFXPtr pTDFX;
2701 pTDFX = TDFXPTR(pScrn);
2702 dacmode=pTDFX->readLong(pTDFX, DACMODE);
2723 pTDFX->writeLong(pTDFX, DACMODE, dacmode);