static void TridentSync(ScrnInfoPtr pScrn) { TRIDENTPtr pTrident = TRIDENTPTR(pScrn); int count = 0, timeout = 0; int busy; TGUI_OPERMODE(pTrident->EngineOperation); for (;;) { BLTBUSY(busy); if (busy != GE_BUSY) { return; } count++; if (count == 10000000) { ErrorF("Trident: BitBLT engine time-out.\n"); count = 9990000; timeout++; if (timeout == 8) { /* Reset BitBLT Engine */ TGUI_STATUS(0x00); return; } } } }
static void TridentInitializeAccelerator(ScrnInfoPtr pScrn) { TRIDENTPtr pTrident = TRIDENTPTR(pScrn); /* This forces updating the clipper */ pTrident->Clipping = TRUE; CHECKCLIPPING; if ( (pTrident->Chipset == PROVIDIA9682) || (pTrident->Chipset == CYBER9385) || (pTrident->Chipset == CYBER9382) ) pTrident->EngineOperation |= 0x100; /* Disable Clipping */ TGUI_OPERMODE(pTrident->EngineOperation); pTrident->PatternLocation = pScrn->displayWidth*pScrn->bitsPerPixel/8; }