[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: