[PATCH 2/5] drm/i915: keep AUX powered while PSR is enabled

Souza, Jose jose.souza at intel.com
Tue Feb 13 21:13:34 UTC 2018


On Tue, 2018-02-13 at 13:04 -0800, Rodrigo Vivi wrote:
> On Tue, Feb 13, 2018 at 08:45:54PM +0000, Souza, Jose wrote:
> > On Mon, 2018-02-12 at 23:26 -0800, Rodrigo Vivi wrote:
> > > On Tue, Feb 13, 2018 at 12:16:10AM +0000, José Roberto de Souza
> > > wrote:
> > > > Hardware can send AUX transactions by it self when PSR is
> > > > enabled
> > > > and it
> > > > expects that AUX is kept powered up.
> > > > 
> > > > Signed-off-by: José Roberto de Souza <jose.souza at intel.com>
> > > > ---
> > > >  drivers/gpu/drm/i915/intel_psr.c | 8 ++++++++
> > > >  1 file changed, 8 insertions(+)
> > > > 
> > > > diff --git a/drivers/gpu/drm/i915/intel_psr.c
> > > > b/drivers/gpu/drm/i915/intel_psr.c
> > > > index 8b456e4e1b47..225fde979e57 100644
> > > > --- a/drivers/gpu/drm/i915/intel_psr.c
> > > > +++ b/drivers/gpu/drm/i915/intel_psr.c
> > > > @@ -516,6 +516,12 @@ void intel_psr_enable(struct intel_dp
> > > > *intel_dp,
> > > >  		goto unlock;
> > > >  	}
> > > >  
> > > > +	/*
> > > > +	 * hardware can send AUX transactions by it self when
> > > > PSR
> > > > is enabled,
> > > > +	 * and it expects that AUX is kept powered up.
> > > > +	 */
> > > > +	intel_display_power_get(dev_priv, intel_dp-
> > > > > aux_power_domain);
> > > > 
> > > > +
> > > 
> > > we actually kind of need the other way around... we need a way to
> > > block psr on aux transactions
> > > instead of making sure we have more power wells enabled when psr
> > > is
> > > enabled.
> > > 
> > > this approach here would kill some power savings
> > 
> > I agree that it will kill some of the power savings but when
> > enabling
> > or disabling PSR hardware will do some aux transactions by it self,
> > so
> > we need to guarantee that the power wells that have the aux ch is
> > kept
> > powered otherwise hardware will not be able to do the aux ch
> > transactions.
> 
> Display engine should takes care of this by itself. We are not
> required
> to leave power wells on for PSR to work.

skl: https://gfxspecs.intel.com/Predator/Home/Index/4230
cnl: https://gfxspecs.intel.com/Predator/Home/Index/17722


"Each DisplayPort Aux channel has an Aux IO Power Request. If an Aux
channel will not be used, it does not need to be powered up.

PSR spontaneously sends Aux transactions.  If PSR is enabled on a port,
then the associated Aux IO must be kept powered up."

> 
> > 
> > > 
> > > >  	dev_priv->psr.psr2_support = crtc_state->has_psr2;
> > > >  	dev_priv->psr.busy_frontbuffer_bits = 0;
> > > >  
> > > > @@ -656,6 +662,8 @@ void intel_psr_disable(struct intel_dp
> > > > *intel_dp,
> > > >  	/* Disable PSR on Sink */
> > > >  	drm_dp_dpcd_writeb(&intel_dp->aux, DP_PSR_EN_CFG, 0);
> > > >  
> > > > +	intel_display_power_put(dev_priv, intel_dp-
> > > > > aux_power_domain);
> > > > 
> > > > +
> > > >  	dev_priv->psr.enabled = NULL;
> > > >  	mutex_unlock(&dev_priv->psr.lock);
> > > >  
> > > > -- 
> > > > 2.16.1
> > > > 
> > > 
> > > _______________________________________________
> > > Intel-gfx-trybot mailing list
> > > Intel-gfx-trybot at lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx-trybot


More information about the Intel-gfx-trybot mailing list