summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormdaenzer <mdaenzer>2002-07-23 17:49:34 +0000
committermdaenzer <mdaenzer>2002-07-23 17:49:34 +0000
commit7cdcae29106ddeef1fb52ecab5a1cca7410e796d (patch)
treee4d10cd927caf8794bcbd2a1546ad480031e8d82
parentad42bb4813d4e3b9aedf046ead30456cc60d6985 (diff)
make sure bus mastering is enabled when switching from console to X, fixes lockups (Charl P. Botha)
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
index 63f405701..ac3323018 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
@@ -4447,7 +4447,14 @@ Bool RADEONEnterVT(int scrnIndex, int flags)
RADEONEngineRestore(pScrn);
#ifdef XF86DRI
- if (RADEONPTR(pScrn)->directRenderingEnabled) {
+ if (info->directRenderingEnabled) {
+ /* This seems to fix that !@#$ irritating switch to VT and back X-freeze
+ * that has been plaguing some DRI users. It seems that bus mastering
+ * is turned off on the video card when one switches to a VT and this
+ * needs to be reactivated when we get back, else things just stop. :)
+ * Charl P. Botha <http://cpbotha.net/> */
+ xf86EnablePciBusMaster(info->PciInfo, TRUE);
+
RADEONCP_START(pScrn, info);
DRIUnlock(pScrn->pScreen);
}