diff options
author | Gareth Hughes <gareth@users.sourceforge.net> | 2001-02-28 11:22:52 +0000 |
---|---|---|
committer | Gareth Hughes <gareth@users.sourceforge.net> | 2001-02-28 11:22:52 +0000 |
commit | 7b5e87d91d062cceb1e4e54b2e144c3c87375234 (patch) | |
tree | 33af15c4dc278be36f7710239032db83c62f0df2 | |
parent | 88dbee54ed400a3fd5594fab506518c171167805 (diff) |
Please try this if you experience lockups...
-rw-r--r-- | linux/r128_drv.h | 8 |
1 files changed, 7 insertions, 1 deletions
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 ); \ |