Hi 2013/2/19 Jesse Barnes <jbarnes at virtuousgeek.org>: > We still rely on a few LVDS bits, but restoring the enable bit can cause > trouble at this point, so don't. > > v2: use the right mask to prevent restore (Daniel) > conditionalize on KMS support (Denial) > > Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org> Reviewed-by: Paulo Zanoni <paulo.r.zanoni at intel.com> Briefly tested on SNB, and it still works. > --- > drivers/gpu/drm/i915/i915_suspend.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c > index 2135f21..c1e02b0 100644 > --- a/drivers/gpu/drm/i915/i915_suspend.c > +++ b/drivers/gpu/drm/i915/i915_suspend.c > @@ -255,6 +255,7 @@ static void i915_save_display(struct drm_device *dev) > static void i915_restore_display(struct drm_device *dev) > { > struct drm_i915_private *dev_priv = dev->dev_private; > + u32 mask = 0xffffffff; > > /* Display arbitration */ > if (INTEL_INFO(dev)->gen <= 4) > @@ -267,10 +268,13 @@ static void i915_restore_display(struct drm_device *dev) > if (INTEL_INFO(dev)->gen >= 4 && !HAS_PCH_SPLIT(dev)) > I915_WRITE(BLC_PWM_CTL2, dev_priv->regfile.saveBLC_PWM_CTL2); > > + if (drm_core_check_feature(dev, DRIVER_MODESET)) > + mask = ~LVDS_PORT_EN; > + > if (HAS_PCH_SPLIT(dev)) { > - I915_WRITE(PCH_LVDS, dev_priv->regfile.saveLVDS); > + I915_WRITE(PCH_LVDS, dev_priv->regfile.saveLVDS & mask); > } else if (IS_MOBILE(dev) && !IS_I830(dev)) > - I915_WRITE(LVDS, dev_priv->regfile.saveLVDS); > + I915_WRITE(LVDS, dev_priv->regfile.saveLVDS & mask); > > if (!IS_I830(dev) && !IS_845G(dev) && !HAS_PCH_SPLIT(dev)) > I915_WRITE(PFIT_CONTROL, dev_priv->regfile.savePFIT_CONTROL); > -- > 1.7.9.5 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Paulo Zanoni