summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichel Dänzer <michel@tungstengraphics.com>2008-09-30 11:03:04 +0200
committerMichel Dänzer <michel@tungstengraphics.com>2008-09-30 11:36:28 +0200
commitba21d5ae7fbbf5828c44c41655aff8b182453e2e (patch)
treeb5a2704b723fbc4e97bb6651df2caea2cabe5413 /src
parent3110646daf05fa09faaa70066cc8c3db1bb07cec (diff)
Update GEN_INT_CNTL register value after calling DRM modeset ioctl.
Fixes sync-to-vblank hangs after mode switch with DRM vblank-rework.
Diffstat (limited to 'src')
-rw-r--r--src/legacy_crtc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/legacy_crtc.c b/src/legacy_crtc.c
index 89fbb039..75ab6c8a 100644
--- a/src/legacy_crtc.c
+++ b/src/legacy_crtc.c
@@ -623,6 +623,7 @@ radeon_crtc_modeset_ioctl(xf86CrtcPtr crtc, Bool post)
RADEONInfoPtr info = RADEONPTR(crtc->scrn);
RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
struct drm_modeset_ctl modeset;
+ unsigned char *RADEONMMIO = info->MMIO;
if (!info->directRenderingEnabled)
return;
@@ -631,6 +632,8 @@ radeon_crtc_modeset_ioctl(xf86CrtcPtr crtc, Bool post)
modeset.cmd = post ? _DRM_POST_MODESET : _DRM_PRE_MODESET;
ioctl(info->dri->drmFD, DRM_IOCTL_MODESET_CTL, &modeset);
+
+ info->ModeReg->gen_int_cntl = INREG( RADEON_GEN_INT_CNTL );
#endif
}