[Intel-gfx] Power saving using Display port HPD

Daniel Vetter daniel at ffwll.ch
Tue Apr 15 23:13:25 CEST 2014


On Tue, Apr 15, 2014 at 11:01:02PM +0300, Imre Deak wrote:
> 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 at 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 at 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).

Yeah, this is a bit worse. Otoh most byt platforms actually shipping will
only have a hdmi port externally, so I think we could just enable the
required power well always as long as we're not in D3. Imo when the
integrated panel is on, hotplug really should work.

Or maybe we should just switch between hotplug and polling on byt 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.

Hm, we need to tune the default runtime value. If all screens are of we
should be able to do runtime pm in a few seconds, so anything more than 1
second is massive overkill imo.

For the overall hotplug in D3 issue I think we can wait until someone
screams with an actual use-case.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list