Skip to contentSkip to conversation

r128 DRM module -- hardware bug

PATCH New Gareth Hughes 1 participant 1 message Feb 28, 2001 Char and misc drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 r128 DRM module -- hardware bug

The following patch addresses a serious problem with older Rage 128 chipsets, up to and including at least the Rage 128 RF chipset found on the Xpert 2000. The workaround should be classed as a critical fix, as without it such cards will lock almost immediately.

-- Gareth

drivers/char/drm/r128_drv.h +5 -0
@@ -447,6 +447,11 @@
 		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 );			\