Hi everyone,

Booting a Thinkpad T420 with the lid closed results and opening it subsequently 
results in an 
unusable picture on the panel (and no amount of resetting makes it usable): The 
even pixels show 
the nominal content of the framebuffer (with the right half missing) whlie the 
odd pixels show a 
red-/blueish flicker.

A little bit of investigation revealed that with the lid closed on boot, the 
panel ends up driven in 
lvds single channel mode, which the panel probably does not like. It appears 
that the i915 driver 
relies on the BIOS setting up the PCH_LVDS register for dual channel and will 
otherwise not ever 
consider switching.

While the following hack makes my display work, it is quite obviously not the 
right thing to do -- 
could you investigate if there is a "proper" way to determine whether the panel 
is supposed to be 
driven dual channel?

Best regards
Helge

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index f851db7..2e51dc3 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -364,8 +364,8 @@ static const intel_limit_t *intel_ironlake_limit(struct 
drm_crtc *crtc,
        const intel_limit_t *limit;
 
        if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) {
-               if ((I915_READ(PCH_LVDS) & LVDS_CLKB_POWER_MASK) ==
-                   LVDS_CLKB_POWER_UP) {
+               if (1 || ((I915_READ(PCH_LVDS) & LVDS_CLKB_POWER_MASK) ==
+                   LVDS_CLKB_POWER_UP)) {
                        /* LVDS dual channel */
                        if (refclk == 100000)
                                limit = &intel_limits_ironlake_dual_lvds_100m;
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to