xf86-video-intel: 4 commits - src/sna/sna_display.c src/uxa/intel_display.c src/uxa/intel_dri.c

Chris Wilson ickle at kemper.freedesktop.org
Mon Jan 6 06:43:44 PST 2014


 src/sna/sna_display.c   |    4 ++--
 src/uxa/intel_display.c |   10 +++++-----
 src/uxa/intel_dri.c     |    5 +++--
 3 files changed, 10 insertions(+), 9 deletions(-)

New commits:
commit 82fa7ec352426c7e3d5210aac8ea1030232cc0f3
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Jan 6 14:30:56 2014 +0000

    uxa: Always treat DPMSModeSuspend/Standby similar to DPMSModeOff
    
    As we assume that Suspend, Standby alias to Off and disable the crtc
    when switching to any mode other than On, we need to also perform the
    backlight updates for Suspend,Standby prior to passing the DPMS value
    onto the kernel.
    
    Suggested-by: Alexander Monakov <amonakov at gmail.com>
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/uxa/intel_display.c b/src/uxa/intel_display.c
index f584f35..39d8507 100644
--- a/src/uxa/intel_display.c
+++ b/src/uxa/intel_display.c
@@ -1118,7 +1118,7 @@ intel_output_dpms(xf86OutputPtr output, int dpms)
 
 		if (!strcmp(props->name, "DPMS")) {
 			/* Make sure to reverse the order between on and off. */
-			if (dpms == DPMSModeOff)
+			if (dpms != DPMSModeOn)
 				intel_output_dpms_backlight(output,
 							    intel_output->dpms_mode,
 							    dpms);
@@ -1129,7 +1129,7 @@ intel_output_dpms(xf86OutputPtr output, int dpms)
 							    props->prop_id,
 							    dpms);
 
-			if (dpms != DPMSModeOff)
+			if (dpms == DPMSModeOn)
 				intel_output_dpms_backlight(output,
 							    intel_output->dpms_mode,
 							    dpms);
commit 28a057105b6974803aee0d68c2a71f322095dfde
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Jan 6 14:37:09 2014 +0000

    uxa: Disable updating properties upon reading their values
    
    Backport commit e76b08cad2770015346fd4cd757de3bb3b6ff37c
    Author: Chris Wilson <chris at chris-wilson.co.uk>
    Date:   Tue Oct 15 12:46:09 2013 +0100
    
        sna: Disable updating properties upon reading their values
    
    in order to prevent random screen blanking upon return from DPMS.
    
    Reported-by: Alexander Monakov <amonakov at gmail.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73181
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/uxa/intel_display.c b/src/uxa/intel_display.c
index 9bda006..f584f35 100644
--- a/src/uxa/intel_display.c
+++ b/src/uxa/intel_display.c
@@ -1188,7 +1188,7 @@ intel_output_create_ranged_atom(xf86OutputPtr output, Atom *atom,
 
 	err = RRChangeOutputProperty(output->randr_output, *atom, XA_INTEGER,
 				     32, PropModeReplace, 1, &value, FALSE,
-				     TRUE);
+				     FALSE);
 	if (err != 0)
 		xf86DrvMsg(output->scrn->scrnIndex, X_ERROR,
 			   "RRChangeOutputProperty error, %d\n", err);
@@ -1271,7 +1271,7 @@ intel_output_create_resources(xf86OutputPtr output)
 					break;
 			/* there's always a matching value */
 			err = RRChangeOutputProperty(output->randr_output, p->atoms[0],
-						     XA_ATOM, 32, PropModeReplace, 1, &p->atoms[j+1], FALSE, TRUE);
+						     XA_ATOM, 32, PropModeReplace, 1, &p->atoms[j+1], FALSE, FALSE);
 			if (err != 0) {
 				xf86DrvMsg(output->scrn->scrnIndex, X_ERROR,
 					   "RRChangeOutputProperty error, %d\n", err);
@@ -1391,7 +1391,7 @@ intel_output_get_property(xf86OutputPtr output, Atom property)
 
 		err = RRChangeOutputProperty(output->randr_output, property,
 					     XA_INTEGER, 32, PropModeReplace, 1, &val,
-					     FALSE, TRUE);
+					     FALSE, FALSE);
 		if (err != 0) {
 			xf86DrvMsg(output->scrn->scrnIndex, X_ERROR,
 				   "RRChangeOutputProperty error, %d\n", err);
commit 0138b38dfcd933d080f86cfd33664eeb3f5558a0
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Jan 6 14:30:56 2014 +0000

    sna: Always treat DPMSModeSuspend/Standby similar to DPMSModeOff
    
    As we assume that Suspend, Standby alias to Off and disable the crtc
    when switching to any mode other than On, we need to also perform the
    backlight updates for Suspend,Standby prior to passing the DPMS value
    onto the kernel.
    
    Suggested-by: Alexander Monakov <amonakov at gmail.com>
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 5810dd1..4818cfc 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -2293,7 +2293,7 @@ sna_output_dpms(xf86OutputPtr output, int dpms)
 	 * record the value before the kernel modifies it
 	 * and reapply it afterwards.
 	 */
-	if (dpms == DPMSModeOff)
+	if (dpms != DPMSModeOn)
 		sna_output_dpms_backlight(output,
 					  sna_output->dpms_mode,
 					  dpms);
@@ -2304,7 +2304,7 @@ sna_output_dpms(xf86OutputPtr output, int dpms)
 					    sna_output->dpms_id,
 					    dpms);
 
-	if (dpms != DPMSModeOff)
+	if (dpms == DPMSModeOn)
 		sna_output_dpms_backlight(output,
 					  sna_output->dpms_mode,
 					  dpms);
commit 28810d5b367942c96acbc696f27105259422a0d1
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Jan 6 14:26:38 2014 +0000

    uxa/dri: Pixmap are offscreen and not attached to any display
    
    As the code current assumes that pixmaps are located at screen origin
    (0,0), it assumes that they are all on the first CRTC. However, since
    they are offscreen, this leads to such complications as attempting to
    emit vsync swapbuffers, and even worse attempting to swap a GLXPixmap
    onto the scanout following a DRI2SwapBuffers.
    
    Reported-by: Alexander Monakov <amonakov at gmail.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73282
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/uxa/intel_dri.c b/src/uxa/intel_dri.c
index 08a0bd4..1d7efab 100644
--- a/src/uxa/intel_dri.c
+++ b/src/uxa/intel_dri.c
@@ -581,7 +581,7 @@ I830DRI2DrawablePipe(DrawablePtr pDraw)
 	ScreenPtr pScreen = pDraw->pScreen;
 	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	BoxRec box, crtcbox;
-	xf86CrtcPtr crtc;
+	xf86CrtcPtr crtc = NULL;
 	int pipe = -1;
 
 	box.x1 = pDraw->x;
@@ -589,7 +589,8 @@ I830DRI2DrawablePipe(DrawablePtr pDraw)
 	box.x2 = box.x1 + pDraw->width;
 	box.y2 = box.y1 + pDraw->height;
 
-	crtc = intel_covering_crtc(pScrn, &box, NULL, &crtcbox);
+	if (pDraw->type != DRAWABLE_PIXMAP)
+		crtc = intel_covering_crtc(pScrn, &box, NULL, &crtcbox);
 
 	/* Make sure the CRTC is valid and this is the real front buffer */
 	if (crtc != NULL && !crtc->rotatedData)


More information about the xorg-commit mailing list