1 --- XFree86-4.0.3/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/r128_cce.c Wed Dec 13 11:02:12 2000
2 +++ XFree86-4.0.3/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/r128_cce.c Tue Feb 20 18:10:16 2001
4 #include <linux/interrupt.h> /* For task queue support */
5 #include <linux/delay.h>
7 +#define R128_FIFO_DEBUG 0
9 -/* FIXME: Temporary CCE packet buffer */
10 -u32 r128_cce_buffer[(1 << 14)] __attribute__ ((aligned (32)));
12 /* CCE microcode (from ATI) */
13 static u32 r128_cce_microcode[] = {
15 return R128_READ(R128_CLOCK_CNTL_DATA);
20 static void r128_status( drm_r128_private_t *dev_priv )
22 printk( "GUI_STAT = 0x%08x\n",
28 DRM_ERROR( "%s failed!\n", __FUNCTION__ );
38 DRM_ERROR( "%s failed!\n", __FUNCTION__ );
46 ret = r128_do_wait_for_fifo( dev_priv, 64 );
47 - if ( !ret ) return ret;
48 + if ( ret < 0 ) return ret;
50 for ( i = 0 ; i < dev_priv->usec_timeout ; i++ ) {
51 if ( !(R128_READ( R128_GUI_STAT ) & R128_GUI_ACTIVE) ) {
57 DRM_ERROR( "%s failed!\n", __FUNCTION__ );
68 DRM_ERROR( "failed!\n" );
69 r128_status( dev_priv );
71 --- XFree86-4.0.3/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/r128_drv.h Tue Dec 5 11:57:26 2000
72 +++ XFree86-4.0.3/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/r128_drv.h Tue Feb 20 18:04:17 2001
74 #define R128_BASE(reg) ((u32)(dev_priv->mmio->handle))
75 #define R128_ADDR(reg) (R128_BASE(reg) + reg)
77 -#define R128_DEREF(reg) *(__volatile__ int *)R128_ADDR(reg)
78 +#define R128_DEREF(reg) *(volatile u32 *)R128_ADDR(reg)
79 #define R128_READ(reg) R128_DEREF(reg)
80 #define R128_WRITE(reg,val) do { R128_DEREF(reg) = val; } while (0)
82 -#define R128_DEREF8(reg) *(__volatile__ char *)R128_ADDR(reg)
83 +#define R128_DEREF8(reg) *(volatile u8 *)R128_ADDR(reg)
84 #define R128_READ8(reg) R128_DEREF8(reg)
85 #define R128_WRITE8(reg,val) do { R128_DEREF8(reg) = val; } while (0)
87 --- XFree86-4.0.3/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmR128.c Wed Dec 13 11:02:11 2000
88 +++ XFree86-4.0.3/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmR128.c Tue Feb 20 23:44:14 2001
92 #define R128_BUFFER_RETRY 32
93 -#define R128_IDLE_RETRY 16
94 +#define R128_IDLE_RETRY 32
97 int drmR128InitCCE( int fd, drmR128Init *info )
100 ret = ioctl( fd, DRM_IOCTL_R128_CCE_STOP, &stop );
102 - if ( ret && errno != EBUSY )
105 + } else if ( errno != EBUSY ) {
112 ret = ioctl( fd, DRM_IOCTL_R128_CCE_STOP, &stop );
113 } while ( ret && errno == EBUSY && i++ < R128_IDLE_RETRY );
115 - if ( ret && errno != EBUSY )
118 + } else if ( errno != EBUSY ) {