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

Bug#600405: xserver-xorg-video-intel: changing to a non-native mode dims backlight



tags 600405 + patch
thanks

On Sat, 16 Oct 2010 at 23:05:51 +0100, Simon McVittie wrote:
> On Sat, 16 Oct 2010 at 22:01:15 +0100, Simon McVittie wrote:
> > This is on a Lenovo X200s. I've tried downgrading to xserver-xorg-video-intel
> > 2:2.9.1-4 from testing (with everything else the same), which doesn't
> > exhibit this bug. However, 2:2.13.0-1 from experimental still has the bug.
> 
> Having tried this out in various versions from snapshot.d.o, it seems this
> regressed in 2:2.12.0+shadow-1. I've sent appropriate BTS control messages.

It turns out this can be worked around by reverting part of the "+shadow"
series. On the upstream bug, Chris Wilson thinks the correct fix is to improve
backlight setting in the kernel, though.

Regards,
    S

>From a19836099da7e920137ee1c2bcae56f4b492df46 Mon Sep 17 00:00:00 2001
From: Simon McVittie <smcv@debian.org>
Date: Sun, 17 Oct 2010 12:17:45 +0100
Subject: [PATCH] Revert "display: outputs are enabled automatically by KMS"

This reverts commit 19c48d3b3f33582baa87a9b3a9189e320e4cea45.
Reverting this appears to work around
<https://bugs.freedesktop.org/show_bug.cgi?id=29716>.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=29716
Bug-Debian: http://bugs.debian.org/600405
---
 src/intel_display.c |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/intel_display.c b/src/intel_display.c
index d32224e..d9c4b5b 100644
--- a/src/intel_display.c
+++ b/src/intel_display.c
@@ -327,7 +327,7 @@ intel_crtc_apply(xf86CrtcPtr crtc)
 	uint32_t *output_ids;
 	int output_count = 0;
 	int fb_id, x, y;
-	int i, ret = FALSE;
+	int i, ret;
 
 	output_ids = calloc(sizeof(uint32_t), xf86_config->num_output);
 	if (!output_ids)
@@ -378,14 +378,26 @@ intel_crtc_apply(xf86CrtcPtr crtc)
 	} else
 		ret = TRUE;
 
+	/* Turn on any outputs on this crtc that may have been disabled */
+	for (i = 0; i < xf86_config->num_output; i++) {
+		xf86OutputPtr output = xf86_config->output[i];
+
+		if (output->crtc != crtc)
+			continue;
+
+		intel_output_dpms(output, DPMSModeOn);
+	}
+
 	intel_set_gem_max_sizes(scrn);
 
 	if (scrn->pScreen)
 		xf86_reload_cursors(scrn->pScreen);
 
+	return ret;
+
 done:
 	free(output_ids);
-	return ret;
+	return FALSE;
 }
 
 static Bool
-- 
1.7.1




Reply to: