diff mbox

drm/i915: don't force VDD on when shutting down a panel

Message ID 1386187617-9948-1-git-send-email-jbarnes@virtuousgeek.org (mailing list archive)
State New, archived
Headers show

Commit Message

Jesse Barnes Dec. 4, 2013, 8:06 p.m. UTC
This causes trouble on some VLV systems, and generally costs power
elsewhere.

If this ends up causing trouble, it could just mean we need to get rid
of VDD force enable everywhere, and move to a pure PPS based DP training
sequence.

References: https://bugs.freedesktop.org/show_bug.cgi?id=69693
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
 drivers/gpu/drm/i915/intel_dp.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Paulo Zanoni Dec. 4, 2013, 8:24 p.m. UTC | #1
2013/12/4 Jesse Barnes <jbarnes@virtuousgeek.org>:
> This causes trouble on some VLV systems, and generally costs power
> elsewhere.
>
> If this ends up causing trouble, it could just mean we need to get rid
> of VDD force enable everywhere, and move to a pure PPS based DP training
> sequence.
>
> References: https://bugs.freedesktop.org/show_bug.cgi?id=69693
> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> ---
>  drivers/gpu/drm/i915/intel_dp.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 1e372d5..cb33b67 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -1236,9 +1236,7 @@ void ironlake_edp_panel_off(struct intel_dp *intel_dp)
>         WARN(!intel_dp->want_panel_vdd, "Need VDD to turn off panel\n");
>
>         pp = ironlake_get_pp_control(intel_dp);
> -       /* We need to switch off panel power _and_ force vdd, for otherwise some
> -        * panels get very unhappy and cease to work. */
> -       pp &= ~(POWER_TARGET_ON | EDP_FORCE_VDD | PANEL_POWER_RESET | EDP_BLC_ENABLE);
> +       pp &= ~(POWER_TARGET_ON | PANEL_POWER_RESET | EDP_BLC_ENABLE);

My understanding is that now you'll keep VDD enabled forever, so the
panel power is not really being disabled. So the commit message and
title seem wrong. Is this really what you wanted?

Please take a look at the last patches of the runtime PM series (I
made them part of the runtime PM series just for rebasing purposes).



>
>         pp_ctrl_reg = _pp_ctrl_reg(intel_dp);
>
> --
> 1.8.4.2
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Jesse Barnes Dec. 4, 2013, 8:34 p.m. UTC | #2
On Wed, 4 Dec 2013 18:24:56 -0200
Paulo Zanoni <przanoni@gmail.com> wrote:

> 2013/12/4 Jesse Barnes <jbarnes@virtuousgeek.org>:
> > This causes trouble on some VLV systems, and generally costs power
> > elsewhere.
> >
> > If this ends up causing trouble, it could just mean we need to get rid
> > of VDD force enable everywhere, and move to a pure PPS based DP training
> > sequence.
> >
> > References: https://bugs.freedesktop.org/show_bug.cgi?id=69693
> > Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> > ---
> >  drivers/gpu/drm/i915/intel_dp.c | 4 +---
> >  1 file changed, 1 insertion(+), 3 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> > index 1e372d5..cb33b67 100644
> > --- a/drivers/gpu/drm/i915/intel_dp.c
> > +++ b/drivers/gpu/drm/i915/intel_dp.c
> > @@ -1236,9 +1236,7 @@ void ironlake_edp_panel_off(struct intel_dp *intel_dp)
> >         WARN(!intel_dp->want_panel_vdd, "Need VDD to turn off panel\n");
> >
> >         pp = ironlake_get_pp_control(intel_dp);
> > -       /* We need to switch off panel power _and_ force vdd, for otherwise some
> > -        * panels get very unhappy and cease to work. */
> > -       pp &= ~(POWER_TARGET_ON | EDP_FORCE_VDD | PANEL_POWER_RESET | EDP_BLC_ENABLE);
> > +       pp &= ~(POWER_TARGET_ON | PANEL_POWER_RESET | EDP_BLC_ENABLE);
> 
> My understanding is that now you'll keep VDD enabled forever, so the
> panel power is not really being disabled. So the commit message and
> title seem wrong. Is this really what you wanted?
> 
> Please take a look at the last patches of the runtime PM series (I
> made them part of the runtime PM series just for rebasing purposes).

Ah yeah you're right, my earlier patch in a bug was right and here I
did a double negative.

We really want to avoid using VDD force altogether, so if your series
does that I think we're in the clear.

Would be good to get confirmation though on #69693.  If you split out
the series can you post an update to it?
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 1e372d5..cb33b67 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1236,9 +1236,7 @@  void ironlake_edp_panel_off(struct intel_dp *intel_dp)
 	WARN(!intel_dp->want_panel_vdd, "Need VDD to turn off panel\n");
 
 	pp = ironlake_get_pp_control(intel_dp);
-	/* We need to switch off panel power _and_ force vdd, for otherwise some
-	 * panels get very unhappy and cease to work. */
-	pp &= ~(POWER_TARGET_ON | EDP_FORCE_VDD | PANEL_POWER_RESET | EDP_BLC_ENABLE);
+	pp &= ~(POWER_TARGET_ON | PANEL_POWER_RESET | EDP_BLC_ENABLE);
 
 	pp_ctrl_reg = _pp_ctrl_reg(intel_dp);