Remove usleeps from sis driver. We probably aren't doing anyone a service

sleeping with the lock held.  Also, rename cEngineState to engineState since
it isn't a char any more.
This commit is contained in:
Eric Anholt 2003-12-09 00:00:40 +00:00
parent 73c3c397e4
commit e8bec8832b
3 changed files with 7 additions and 10 deletions

View File

@ -84,27 +84,25 @@ static const char * const card_extensions[] =
void
WaitEngIdle (sisContextPtr smesa)
{
GLuint cEngineState;
GLuint engineState;
do {
cEngineState = MMIO_READ(REG_CommandQueue);
} while ((cEngineState & SiS_EngIdle) != SiS_EngIdle);
engineState = MMIO_READ(REG_CommandQueue);
} while ((engineState & SiS_EngIdle) != SiS_EngIdle);
}
void
Wait2DEngIdle (sisContextPtr smesa)
{
GLuint cEngineState;
GLuint engineState;
do {
cEngineState = MMIO_READ(REG_CommandQueue);
} while ((cEngineState & SiS_EngIdle2d) != SiS_EngIdle2d);
engineState = MMIO_READ(REG_CommandQueue);
} while ((engineState & SiS_EngIdle2d) != SiS_EngIdle2d);
}
/* To be called from mWait3DCmdQueue. Separate function for profiling
* purposes, and speed doesn't matter because we're spinning anyway.
* This function should use usleeps to release cpu probably, but I have yet
* to see it get called.
*/
void
WaitingFor3dIdle(sisContextPtr smesa, int wLen)

View File

@ -162,7 +162,7 @@ static void sisCopyBuffer( __DRIdrawablePrivate *dPriv )
ENGPACKET stEngPacket;
while ((*smesa->FrameCountPtr) - MMIO_READ(0x8a2c) > SIS_MAX_FRAME_LENGTH)
usleep(1);
;
LOCK_HARDWARE();

View File

@ -870,7 +870,6 @@ sisMakeRoomAGP( sisContextPtr smesa, GLint num )
sisUpdateAGP( smesa );
while (size > AGP_SpaceLeft) {
/* Spin until space is available. */
usleep(1);
AGP_ReadPtr = (GLfloat *)((long)MMIO_READ(REG_3D_AGPCmBase) -
(long)smesa->AGPCmdBufAddr + (long)smesa->AGPCmdBufBase);
sisUpdateAGP( smesa );