Message ID | 20190228013259.30026-2-jose.souza@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3,1/6] drm/i915/psr: Remove PSR2 FIXME | expand |
On Wed, Feb 27, 2019 at 05:32:55PM -0800, José Roberto de Souza wrote: > Forcing a specific CRTC to the eDP connector was causing the > intel_psr_fastset_force() to mark mode_chaged in the wrong and > disabled CRTC causing no update in the PSR state. > > Looks like our internal state track do not clear output_types and > has_psr in the disabled CRTCs, not sure if this is the expected > behavior or not but in the mean time this fix the issue. > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> > Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > --- > drivers/gpu/drm/i915/intel_psr.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c > index 8bed73914876..6175b1d2e0c8 100644 > --- a/drivers/gpu/drm/i915/intel_psr.c > +++ b/drivers/gpu/drm/i915/intel_psr.c > @@ -981,7 +981,8 @@ static int intel_psr_fastset_force(struct drm_i915_private *dev_priv) > > intel_crtc_state = to_intel_crtc_state(crtc_state); > > - if (intel_crtc_has_type(intel_crtc_state, INTEL_OUTPUT_EDP) && > + if (crtc_state->active && > + intel_crtc_has_type(intel_crtc_state, INTEL_OUTPUT_EDP) && What's the point of that eDP check anyway? > intel_crtc_state->has_psr) { > /* Mark mode as changed to trigger a pipe->update() */ > crtc_state->mode_changed = true; > -- > 2.21.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
On Thu, 2019-02-28 at 18:39 +0200, Ville Syrjälä wrote: > On Wed, Feb 27, 2019 at 05:32:55PM -0800, José Roberto de Souza > wrote: > > Forcing a specific CRTC to the eDP connector was causing the > > intel_psr_fastset_force() to mark mode_chaged in the wrong and > > disabled CRTC causing no update in the PSR state. > > > > Looks like our internal state track do not clear output_types and > > has_psr in the disabled CRTCs, not sure if this is the expected > > behavior or not but in the mean time this fix the issue. > > > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > > Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> > > Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > > --- > > drivers/gpu/drm/i915/intel_psr.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_psr.c > > b/drivers/gpu/drm/i915/intel_psr.c > > index 8bed73914876..6175b1d2e0c8 100644 > > --- a/drivers/gpu/drm/i915/intel_psr.c > > +++ b/drivers/gpu/drm/i915/intel_psr.c > > @@ -981,7 +981,8 @@ static int intel_psr_fastset_force(struct > > drm_i915_private *dev_priv) > > > > intel_crtc_state = to_intel_crtc_state(crtc_state); > > > > - if (intel_crtc_has_type(intel_crtc_state, > > INTEL_OUTPUT_EDP) && > > + if (crtc_state->active && > > + intel_crtc_has_type(intel_crtc_state, > > INTEL_OUTPUT_EDP) && > > What's the point of that eDP check anyway? I gonna drop it in another patch. > > > intel_crtc_state->has_psr) { > > /* Mark mode as changed to trigger a pipe- > > >update() */ > > crtc_state->mode_changed = true; > > -- > > 2.21.0 > > > > _______________________________________________ > > 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 8bed73914876..6175b1d2e0c8 100644 --- a/drivers/gpu/drm/i915/intel_psr.c +++ b/drivers/gpu/drm/i915/intel_psr.c @@ -981,7 +981,8 @@ static int intel_psr_fastset_force(struct drm_i915_private *dev_priv) intel_crtc_state = to_intel_crtc_state(crtc_state); - if (intel_crtc_has_type(intel_crtc_state, INTEL_OUTPUT_EDP) && + if (crtc_state->active && + intel_crtc_has_type(intel_crtc_state, INTEL_OUTPUT_EDP) && intel_crtc_state->has_psr) { /* Mark mode as changed to trigger a pipe->update() */ crtc_state->mode_changed = true;