Re: Power saving using Display port HPD

Imre Deak
2014-04-15T20:01:07Z

On Tue, 2014-04-15 at 21:32 +0200, Daniel Vetter wrote:
> On Mon, Apr 14, 2014 at 11:17:53AM +0300, Imre Deak wrote:
> > On Mon, 2014-04-14 at 09:47 +0200, Daniel Vetter wrote:
> > > On Mon, Apr 14, 2014 at 9:43 AM, Arun Chandran <achandran@mvista.com> wrote:
> > > > 1) Revert the commit 77961eb984c7e5394bd29cc7be2ab0bf0cc7e7b1.
> > > > With this commit DP hotplug events are not coming after doing "xset dpms
> > > > force off"
> > > >
> > > > commit bfcbf45b5b458ebdc38118ca67279a1cd90e085d
> > > > Author: Arun Chandran <achandran@mvista.com>
> > > > Date: Fri Apr 11 16:16:32 2014 +0530
> > > >
> > > > Revert "drm/i915: power domains: add vlv power wells"
> > > >
> > > > This reverts commit 77961eb984c7e5394bd29cc7be2ab0bf0cc7e7b1.
> > >
> > > So this breaks DP hotplug detection? Imre?
> >
> > Yes, unfortunately. I made this clear in my patchset [1] and it was also
> > discussed on IRC. If there isn't any (e)DP,HDMI pipe active we power
> > down the DPIO HW block responsible normally for DP and HDMI hotplug
> > detection.
> >
> > There is one possible solution: the pin that is used for HPD detection
> > can be used either normally in the above way, where it's controlled by
> > the DPIO block, or as a GPIO where it's controlled by the GPIO HW block
> > which is on even if we power down the DPIO. So during power down periods
> > we could reconfigure that pin to work as a GPIO and treat any interrupts
> > arriving it as an HPD event. I haven't had yet time to investigate this.
> >
> > Another way is to turn on polling while powered down. This would also
> > make VGA hotplug work, for which we don't have a GPIO alternative as
> > above.
> >
> > [1]
> > http://lists.freedesktop.org/archives/intel-gfx/2014-February/040232.html
>
> Iirc we've agreed that when all screens are off it's ok to no longer
> support hotplug. Or is this only the case when _only_ the DP port is off
> but e.g. another port (edp or mipi) is on?

If eDP is on HPD should work fine since the DPIO block is on. With only
MIPI on, we would atm turn off the DPIO, so I assume we would again lose
HPD :( But I haven't tested this last scenario.

Btw, I think Antti is planning to look into the GPIO workaround thing,
so if that works out we'd get back HPD for DP and HDMI at least (but not
for VGA).

> I'm asking since currently on hsw/bdw hotplug also doesn't work when you
> switch everything off ...

Hm, on BDW/HSW we mask all interrupts at runtime suspend->D3 state, so
that's the reason there .. I don't know if it's possible to get a
wake-up signal on an HPD event in D3, I haven't checked this myself,
maybe Paulo knows. But I doubt. CC'ing him.

It's a bit different than VLV, since there we lose HPD already in D0,
when the display side is off. On BDW,HSW in that case we still have HPD,
although probably shortly afterwards (10 sec) runtime supend->D3 follows
anyway.

--Imre