forwarded 660394 http://lists.freedesktop.org/archives/intel-gfx/2012-January/014334.html tags 660394 + upstream patch quit
Hi Joel, Joel Heaton wrote: > Video: Intel HD/HD 2000/HD 3000 [...] > When booting the screen goes blank about 80% through the boot cycle. > The system is still running, I can log in blind and execute reboot > command. > I ssh into the system from another computer. > kern.log reports “Firmware Bug: ACPI: No _BQC method, cannot determine > initial brightness” > inxi -Fxx reports Drivers: (vesa, intel (unloaded: fbdev) Resolution > 1280×1024@76.0hz > sporadically, I get a good boot, maybe once in 20 tries. Is this a regression? What other kernel versions have you tried, and how did they behave? Is this the internal panel (LVDS) or some other output? Please attach full "acpidump" and "dmesg" output from a bad boot. Can you try the attached patch? Instructions for testing a patched kernel are at [1]. Thanks, Jonathan [1] http://kernel-handbook.alioth.debian.org/ch-common-tasks.html or the corresponding page in the debian-kernel-handbook package. References: http://forums.gentoo.org/viewtopic-t-874961.html http://www.debianuserforums.org/viewtopic.php?f=56&t=1586 https://bugs.freedesktop.org/show_bug.cgi?id=44652 http://techpatterns.com/forums/about1994-20.html http://www.aptosid.com/index.php?name=PNphpBB2&file=viewtopic&t=2075
From: Jesse Barnes <jbar...@virtuousgeek.org> Date: Thu, 12 Jan 2012 14:51:17 -0800 Subject: drm/i915: mask transcoder select bits before setting them on LVDS commit 7885d2052bd94395e337709cfba093a41f273ff1 upstream. The transcoder port may changed from mode set to mode set, so make sure to mask out the selection bits before setting the right ones or we'll get black screens when going from transcoder B to A. Tested-by: Vincent Vanackere <vincent.vanack...@gmail.com> Signed-off-by: Jesse Barnes <jbar...@virtuousgeek.org> Reviewed-by: Keith Packard <kei...@keithp.com> Signed-off-by: Keith Packard <kei...@keithp.com> Signed-off-by: Jonathan Nieder <jrnie...@gmail.com> --- drivers/gpu/drm/i915/intel_display.c | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index daa5743..a52a9a2 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -5646,12 +5646,15 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc, if (is_lvds) { temp = I915_READ(PCH_LVDS); temp |= LVDS_PORT_EN | LVDS_A0A2_CLKA_POWER_UP; - if (HAS_PCH_CPT(dev)) + if (HAS_PCH_CPT(dev)) { + temp &= ~PORT_TRANS_SEL_MASK; temp |= PORT_TRANS_SEL_CPT(pipe); - else if (pipe == 1) - temp |= LVDS_PIPEB_SELECT; - else - temp &= ~LVDS_PIPEB_SELECT; + } else { + if (pipe == 1) + temp |= LVDS_PIPEB_SELECT; + else + temp &= ~LVDS_PIPEB_SELECT; + } /* set the corresponsding LVDS_BORDER bit */ temp |= dev_priv->lvds_border_bits; -- 1.7.2.5