Ah ok, that makes more sense. Does this patch change anything? We might be disabling LVDS incorrectly (i.e. without a corresponding panel power sequence):
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_d index 35364e6..ab8a36d 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -1394,7 +1394,7 @@ static void intel_disable_pch_ports(struct drm_i915_privat val = I915_READ(reg); if (ADPA_PIPE_ENABLED(val, pipe)) I915_WRITE(reg, val & ~ADPA_DAC_ENABLE); - +#if 0 reg = PCH_LVDS; val = I915_READ(reg); if (LVDS_PIPE_ENABLED(val, pipe)) { @@ -1402,7 +1402,7 @@ static void intel_disable_pch_ports(struct drm_i915_privat POSTING_READ(reg); udelay(100); } - +#endif disable_pch_hdmi(dev_priv, pipe, HDMIB); disable_pch_hdmi(dev_priv, pipe, HDMIC); disable_pch_hdmi(dev_priv, pipe, HDMID);
Ah ok, that makes more sense. Does this patch change anything? We might be disabling LVDS incorrectly (i.e. without a corresponding panel power sequence):
diff --git a/drivers/ gpu/drm/ i915/intel_ display. c b/drivers/ gpu/drm/ i915/intel_ d gpu/drm/ i915/intel_ display. c gpu/drm/ i915/intel_ display. c pch_ports( struct drm_i915_privat ENABLED( val, pipe))
I915_ WRITE(reg, val & ~ADPA_DAC_ENABLE); ENABLED( val, pipe)) { pch_ports( struct drm_i915_privat
POSTING_ READ(reg) ;
udelay( 100);
disable_ pch_hdmi( dev_priv, pipe, HDMIB);
disable_ pch_hdmi( dev_priv, pipe, HDMIC);
disable_ pch_hdmi( dev_priv, pipe, HDMID);
index 35364e6..ab8a36d 100644
--- a/drivers/
+++ b/drivers/
@@ -1394,7 +1394,7 @@ static void intel_disable_
val = I915_READ(reg);
if (ADPA_PIPE_
-
+#if 0
reg = PCH_LVDS;
val = I915_READ(reg);
if (LVDS_PIPE_
@@ -1402,7 +1402,7 @@ static void intel_disable_
}
-
+#endif