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;