On Wed, Feb 22, 2017 at 05:10:52PM +0200, Imre Deak wrote: > At least a ParadTech PS175 LSPCON chip/firmware uses long instead of > short pulses to signal output unplug/plug events. This is contrary to > how branch devices normally work which use short HPD signaling. This > chip will also switch to LS mode after an unplug event, which could be > the consequence of the long HPD signaling semantics and an effort to > save power automatically. Because of this we'll fail to do AUX and > detect the output after a replug event. > > To fix this make sure we are in PCON mode during connector detection. > > v2: > - Switch the mode in the proper spot. > > Cc: raptorteak@xxxxxxxxx > Cc: Shashank Sharma <shashank.sharma@xxxxxxxxx> > Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98912 > Reported-and-tested-by: raptorteak@xxxxxxxxx > Signed-off-by: Imre Deak <imre.deak@xxxxxxxxx> lgtm Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_dp.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c > index 024798a..e1529ff 100644 > --- a/drivers/gpu/drm/i915/intel_dp.c > +++ b/drivers/gpu/drm/i915/intel_dp.c > @@ -4326,9 +4326,13 @@ intel_dp_short_pulse(struct intel_dp *intel_dp) > static enum drm_connector_status > intel_dp_detect_dpcd(struct intel_dp *intel_dp) > { > + struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp); > uint8_t *dpcd = intel_dp->dpcd; > uint8_t type; > > + if (lspcon->active) > + lspcon_resume(lspcon); > + > if (!intel_dp_get_dpcd(intel_dp)) > return connector_status_disconnected; > > -- > 2.5.0 -- Ville Syrjälä Intel OTC _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx