r128 DRM module -- hardware bug
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 ); \