On Die, 2002-09-03 at 16:12, Peter Johnson wrote: > Figured that one out shortly after sending. Still having what amounts to a > system hang, when I try to run the DRI extension. This happens with 1.3 GHz > Athlon, running either kernel 2.4.20-pre5 or 2.4.18 and ATI Rage 128 Pro PP rev 0 > (Xpert/PCI).
One possible cause is that bus mastering is only enabled explicitly for AGP cards. The attached patch fixes that as well as related hangs when VT switching back to the server. -- Earthling Michel Dänzer (MrCooper)/ Debian GNU/Linux (powerpc) developer XFree86 and DRI project member / CS student, Free Software enthusiast
Index: r128_dri.c =================================================================== RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c,v retrieving revision 1.22 diff -p -u -r1.22 r128_dri.c --- r128_dri.c 2001/12/28 15:49:11 1.22 +++ r128_dri.c 2002/09/03 14:24:24 @@ -601,8 +601,6 @@ static Bool R128DRIAgpInit(R128InfoPtr i OUTREG(R128_PCI_GART_PAGE, 1); /* Ensure AGP GART is used (for now) */ - xf86EnablePciBusMaster(info->PciInfo, TRUE); - return TRUE; } @@ -1028,6 +1026,8 @@ Bool R128DRIScreenInit(ScreenPtr pScreen R128DRICloseScreen(pScreen); return FALSE; } + + xf86EnablePciBusMaster(info->PciInfo, TRUE); /* DRIScreenInit doesn't add all the common mappings. Add additional Index: r128_driver.c =================================================================== RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c,v retrieving revision 1.57 diff -p -u -r1.57 r128_driver.c --- r128_driver.c 2002/01/04 21:22:26 1.57 +++ r128_driver.c 2002/09/03 14:24:24 @@ -3415,6 +3427,7 @@ Bool R128EnterVT(int scrnIndex, int flag #ifdef XF86DRI if (info->directRenderingEnabled) { + xf86EnablePciBusMaster(info->PciInfo, TRUE); R128CCE_START(pScrn, info); DRIUnlock(pScrn->pScreen); }