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 /linux | |
| parent | 88dbee54ed400a3fd5594fab506518c171167805 (diff) | |
Please try this if you experience lockups...
Diffstat (limited to 'linux')
| -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 );			\ | 
