diff mbox

[1/6] drm/i915: don't restore LVDS enable state blindly

Message ID 1360960957-6688-2-git-send-email-jbarnes@virtuousgeek.org (mailing list archive)
State New, archived
Headers show

Commit Message

Jesse Barnes Feb. 15, 2013, 8:42 p.m. UTC
We still rely on a few LVDS bits, but restoring the enable bit can cause
trouble at this point, so don't.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
 drivers/gpu/drm/i915/i915_suspend.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Daniel Vetter Feb. 15, 2013, 9:10 p.m. UTC | #1
On Fri, Feb 15, 2013 at 12:42:32PM -0800, Jesse Barnes wrote:
> We still rely on a few LVDS bits, but restoring the enable bit can cause
> trouble at this point, so don't.
> 
> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> ---
>  drivers/gpu/drm/i915/i915_suspend.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
> index 2135f21..a81abed 100644
> --- a/drivers/gpu/drm/i915/i915_suspend.c
> +++ b/drivers/gpu/drm/i915/i915_suspend.c
> @@ -268,9 +268,9 @@ static void i915_restore_display(struct drm_device *dev)
>  		I915_WRITE(BLC_PWM_CTL2, dev_priv->regfile.saveBLC_PWM_CTL2);
>  
>  	if (HAS_PCH_SPLIT(dev)) {
> -		I915_WRITE(PCH_LVDS, dev_priv->regfile.saveLVDS);
> +		I915_WRITE(PCH_LVDS, dev_priv->regfile.saveLVDS & 0x7fffffff);

~LVDS_PORT_EN and I think you need to make this conditional on kms.
-Daniel

>  	} else if (IS_MOBILE(dev) && !IS_I830(dev))
> -		I915_WRITE(LVDS, dev_priv->regfile.saveLVDS);
> +		I915_WRITE(LVDS, dev_priv->regfile.saveLVDS & 0x7fffffff);
>  
>  	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@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Jesse Barnes Feb. 15, 2013, 9:15 p.m. UTC | #2
On Fri, 15 Feb 2013 22:10:39 +0100
Daniel Vetter <daniel@ffwll.ch> wrote:

> On Fri, Feb 15, 2013 at 12:42:32PM -0800, Jesse Barnes wrote:
> > We still rely on a few LVDS bits, but restoring the enable bit can cause
> > trouble at this point, so don't.
> > 
> > Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> > ---
> >  drivers/gpu/drm/i915/i915_suspend.c |    4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
> > index 2135f21..a81abed 100644
> > --- a/drivers/gpu/drm/i915/i915_suspend.c
> > +++ b/drivers/gpu/drm/i915/i915_suspend.c
> > @@ -268,9 +268,9 @@ static void i915_restore_display(struct drm_device *dev)
> >  		I915_WRITE(BLC_PWM_CTL2, dev_priv->regfile.saveBLC_PWM_CTL2);
> >  
> >  	if (HAS_PCH_SPLIT(dev)) {
> > -		I915_WRITE(PCH_LVDS, dev_priv->regfile.saveLVDS);
> > +		I915_WRITE(PCH_LVDS, dev_priv->regfile.saveLVDS & 0x7fffffff);
> 
> ~LVDS_PORT_EN and I think you need to make this conditional on kms.
> -Daniel

Good call, will respin.
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
index 2135f21..a81abed 100644
--- a/drivers/gpu/drm/i915/i915_suspend.c
+++ b/drivers/gpu/drm/i915/i915_suspend.c
@@ -268,9 +268,9 @@  static void i915_restore_display(struct drm_device *dev)
 		I915_WRITE(BLC_PWM_CTL2, dev_priv->regfile.saveBLC_PWM_CTL2);
 
 	if (HAS_PCH_SPLIT(dev)) {
-		I915_WRITE(PCH_LVDS, dev_priv->regfile.saveLVDS);
+		I915_WRITE(PCH_LVDS, dev_priv->regfile.saveLVDS & 0x7fffffff);
 	} else if (IS_MOBILE(dev) && !IS_I830(dev))
-		I915_WRITE(LVDS, dev_priv->regfile.saveLVDS);
+		I915_WRITE(LVDS, dev_priv->regfile.saveLVDS & 0x7fffffff);
 
 	if (!IS_I830(dev) && !IS_845G(dev) && !HAS_PCH_SPLIT(dev))
 		I915_WRITE(PFIT_CONTROL, dev_priv->regfile.savePFIT_CONTROL);