Message ID | 20180214002917.31252-2-jose.souza@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
José Roberto de Souza <jose.souza@intel.com> writes: > Hardware can send AUX transactions by it self when PSR is enabled and it > expects that AUX is kept powered up. > > From spec: > > "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." > > BSpec: 4230 > BSpec: 17722 It seems here this is only needed for AUX IO PWs. So maybe for that we would need some thing like POWER_DOMAIN_PSR_AUX_* that is part of {GLK,CNL}_DISPLAY_AUX_*_POWER_DOMAINS So here we would get and put the specific PSR_AUX ones instead of the whole dp aux. We don't need to keep the entire well up apparently. At least I hope we don't. > > Signed-off-by: José Roberto de Souza <jose.souza@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); > + > 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 mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
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); + 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);
Hardware can send AUX transactions by it self when PSR is enabled and it expects that AUX is kept powered up. From spec: "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." BSpec: 4230 BSpec: 17722 Signed-off-by: José Roberto de Souza <jose.souza@intel.com> --- drivers/gpu/drm/i915/intel_psr.c | 8 ++++++++ 1 file changed, 8 insertions(+)