First of all, DRI is working on my r128 M3 mobility in my laptop now with XFree86-4.0.2-11.4.0. The bus-mastering fix was the relevant fix from previous testing with stuff off of dri-devel. Unfortunately, after a suspend/resume cycle, bus-mastering is disabled again. So, bus-mastering also needs to be explicitly enabled on an APM resume (since logging out of X and restarting it does get working DRI again, but that's not a workable solution always due to the fun of glx screensavers...)
APM is the problem here I believe. Disable APM. Does this fix it?
Disabling apm will of course work because then you can't suspend/resume at all, which is kind of a bummer. Luckily, the base X server continues to work after a resume just as long as you avoid any GL apps... I've sent a message to dri-devel asking if there's a way to hook into the suspend/resume cycle from within the driver, since you could then theoretically reenable bus mastering on resume.
If they find a way to do it, let me know and I will add in the necessary patch for you. I agree the current situation sucks, but at least it works now.. ;o) There's no NEEDPATCH so NEEDINFO. ;o)
After reconsidering this, there is no realistic way that we (Red Hat) can provide a fix for this until the XFree86 team and/or people working on APM support provide a solution. Such a fix will appear in a future release of Red Hat Linux whenever the upstream maintainers of XFree/apmd/kernel get APM functioning in Linux. I will gladly look into any potential fixes people send me in the meantime however.