summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);
}