From 7b5e87d91d062cceb1e4e54b2e144c3c87375234 Mon Sep 17 00:00:00 2001 From: Gareth Hughes Date: Wed, 28 Feb 2001 11:22:52 +0000 Subject: Please try this if you experience lockups... --- linux/r128_drv.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'linux') diff --git a/linux/r128_drv.h b/linux/r128_drv.h index ba11f5b4..dfefb4e0 100644 --- a/linux/r128_drv.h +++ b/linux/r128_drv.h @@ -454,7 +454,8 @@ do { \ #define R128_VERBOSE 0 -#define RING_LOCALS int write; unsigned int tail_mask; volatile u32 *ring; +#define RING_LOCALS \ + int write; unsigned int tail_mask; volatile u32 *ring; #define BEGIN_RING( n ) do { \ if ( R128_VERBOSE ) { \ @@ -475,6 +476,11 @@ do { \ DRM_INFO( "ADVANCE_RING() tail=0x%06x wr=0x%06x\n", \ write, dev_priv->ring.tail ); \ } \ + if ( write < 32 ) { \ + memcpy( dev_priv->ring.end, \ + dev_priv->ring.start, \ + write * sizeof(u32) ); \ + } \ r128_flush_write_combine(); \ dev_priv->ring.tail = write; \ R128_WRITE( R128_PM4_BUFFER_DL_WPTR, write ); \ -- cgit v1.2.3