xserver-xorg-video-intel: Changes to 'debian-unstable'
debian/changelog | 8 ++++++++
src/intel_display.c | 15 +++++++++++++++
2 files changed, 23 insertions(+)
New commits:
commit ab4c2c4dd666d7506829e1840b812d66af1d122c
Author: Julien Cristau <jcristau@debian.org>
Date: Sat Jun 23 19:17:42 2012 +0200
Upload to unstable
diff --git a/debian/changelog b/debian/changelog
index 5bc9fe1..f23fe06 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+xserver-xorg-video-intel (2:2.19.0-4) unstable; urgency=medium
+
+ * uxa: Check for DPMS off before scheduling a WAIT_ON_EVENT. Fixes
+ regression from a cherry-pick in 2:2.19.0-2. Thanks to Julian Andres
+ Klode for tracking this down.
+
+ -- Julien Cristau <jcristau@debian.org> Sat, 23 Jun 2012 19:16:28 +0200
+
xserver-xorg-video-intel (2:2.19.0-3) unstable; urgency=low
* Add patch to avoid X segfaults with Driver-less Device sections in
commit 9b92aefec37b34044a9e12d01ccdadeb7e9853de
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue Jun 5 16:04:16 2012 +0100
uxa: Check for DPMS off before scheduling a WAIT_ON_EVENT
Regression from commit 3f3bde4f0c72f6f31aae322bcdc20b95eade6631
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Thu May 24 11:58:46 2012 +0100
uxa: Only consider an output valid if the kernel reports it attached
When backporting from SNA, a key difference that UXA does not track DPMS
state in its enabled flag and that a DPMS off CRTC is still bound to the
fb. So we do need to rescan the outputs and check that we have a
connector enabled *and* the pipe is running prior to emitting a scanline
wait.
References: https://bugs.freedesktop.org/show_bug.cgi?id=50668
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
(cherry picked from commit c4eb5528a456b65c673f7c984d14a622ac67cdca)
diff --git a/src/intel_display.c b/src/intel_display.c
index 89f7259..75d4998 100644
--- a/src/intel_display.c
+++ b/src/intel_display.c
@@ -1703,13 +1703,28 @@ int intel_crtc_to_pipe(xf86CrtcPtr crtc)
Bool intel_crtc_on(xf86CrtcPtr crtc)
{
struct intel_crtc *intel_crtc = crtc->driver_private;
+ xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(crtc->scrn);
drmModeCrtcPtr drm_crtc;
Bool ret;
+ int i;
if (!crtc->enabled)
return FALSE;
/* Kernel manages CRTC status based on output config */
+ ret = FALSE;
+ for (i = 0; i < xf86_config->num_output; i++) {
+ xf86OutputPtr output = xf86_config->output[i];
+ if (output->crtc == crtc &&
+ intel_output_dpms_status(output) == DPMSModeOn) {
+ ret = TRUE;
+ break;
+ }
+ }
+ if (!ret)
+ return FALSE;
+
+ /* And finally check with the kernel that the fb is bound */
drm_crtc = drmModeGetCrtc(intel_crtc->mode->fd, crtc_id(intel_crtc));
if (drm_crtc == NULL)
return FALSE;
Reply to: