On Mon, Oct 01, 2018 at 03:01:18PM -0700, Dhinakaran Pandiyan wrote: > On Mon, 2018-10-01 at 23:10 +0300, Ville Syrjälä wrote: > > On Mon, Oct 01, 2018 at 12:48:28PM -0700, Rodrigo Vivi wrote: > > > On Tue, Sep 25, 2018 at 07:54:22PM -0700, Dhinakaran Pandiyan > > > wrote: > > > > A crtc modeset lock was added for link retraining but > > > > intel_dp_retrain_link() knows to take the necessary locks since > > > > commit c85d200e8321 ("drm/i915: Move SST DP link retraining into > > > > the > > > > ->post_hotplug() hook") > > > > v2: Drop AUX power domain reference in the early return path > > > > > > > > Fixes: c85d200e8321 ("drm/i915: Move SST DP link retraining into > > > > the ->post_hotplug() hook") > > > > > > This patch failed on cherry-pick for drm-intel-fixes targeting > > > 4.19. > > > > > > If it still makes sense to have it there please provide a > > > backported version > > > to drm-intel-fixes or let me know if it has dependency on other > > > patches? > > > > This is more of an optimization to not disturb page flips and whatnot > > so much with detect. The double lock is otherwise harmless due to > > ww_mutex. > > > Yeah, let's not backport this. cool, thanks. > > -DK > > > > > > > Thanks, > > > Rodrigo. > > > > > > > Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > > > Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@xxxxxxxxx > > > > > > > > > --- > > > > drivers/gpu/drm/i915/intel_dp.c | 24 ++++++++++-------------- > > > > 1 file changed, 10 insertions(+), 14 deletions(-) > > > > > > > > diff --git a/drivers/gpu/drm/i915/intel_dp.c > > > > b/drivers/gpu/drm/i915/intel_dp.c > > > > index 09229fc66dec..ef28cc0f122c 100644 > > > > --- a/drivers/gpu/drm/i915/intel_dp.c > > > > +++ b/drivers/gpu/drm/i915/intel_dp.c > > > > @@ -5079,8 +5079,15 @@ intel_dp_long_pulse(struct intel_connector > > > > *connector, > > > > * Some external monitors do not signal loss of link > > > > synchronization > > > > * with an IRQ_HPD, so force a link status check. > > > > */ > > > > - if (!intel_dp_is_edp(intel_dp)) > > > > - intel_dp_retrain_link(encoder, ctx); > > > > + if (!intel_dp_is_edp(intel_dp)) { > > > > + int ret; > > > > + > > > > + ret = intel_dp_retrain_link(encoder, ctx); > > > > + if (ret) { > > > > + intel_display_power_put(dev_priv, intel_dp- > > > > >aux_power_domain); > > > > + return ret; > > > > + } > > > > + } > > > > > > > > /* > > > > * Clearing NACK and defer counts to get their exact values > > > > @@ -5130,19 +5137,8 @@ intel_dp_detect(struct drm_connector > > > > *connector, > > > > connector->base.id, connector->name); > > > > > > > > /* If full detect is not performed yet, do a full detect */ > > > > - if (!intel_dp->detect_done) { > > > > - struct drm_crtc *crtc; > > > > - int ret; > > > > - > > > > - crtc = connector->state->crtc; > > > > - if (crtc) { > > > > - ret = drm_modeset_lock(&crtc->mutex, ctx); > > > > - if (ret) > > > > - return ret; > > > > - } > > > > - > > > > + if (!intel_dp->detect_done) > > > > status = intel_dp_long_pulse(intel_dp- > > > > >attached_connector, ctx); > > > > - } > > > > > > > > intel_dp->detect_done = false; > > > > > > > > -- > > > > 2.14.1 > > > > > > > > _______________________________________________ > > > > Intel-gfx mailing list > > > > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > > > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx > > > > > > _______________________________________________ > > > Intel-gfx mailing list > > > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx > > > > > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx