Fix hangs on big-endian (e.g., PowerPC) hardware.
authorIan Romanick <idr@us.ibm.com>
Sun, 17 Oct 2004 21:29:58 +0000 (21:29 +0000)
committerIan Romanick <idr@us.ibm.com>
Sun, 17 Oct 2004 21:29:58 +0000 (21:29 +0000)
src/mesa/drivers/dri/r128/r128_ioctl.c

index d9fc025..bf64321 100644 (file)
@@ -225,12 +225,11 @@ static void delay( void ) {
 static int r128WaitForFrameCompletion( r128ContextPtr rmesa )
 {
    unsigned char *R128MMIO = rmesa->r128Screen->mmio.map;
-   uint32_t frame;
    int i;
    int wait = 0;
 
    while ( 1 ) {
-      frame = *(volatile unsigned int *)(R128MMIO + R128_LAST_FRAME_REG);
+      uint32_t frame = LE32_TO_CPU(*(volatile uint32_t *)(R128MMIO + R128_LAST_FRAME_REG));
 
       if ( rmesa->sarea->last_frame - frame <= R128_MAX_OUTSTANDING ) {
         break;