On Mon, 2020-03-30 at 12:54 +0300, Imre Deak wrote: > On TypeC ports if a sink deasserts/reasserts its HPD signal, > generating > a hotplug interrupt without the sink getting unplugged/replugged from > the connector, there can be an up to 3 seconds delay until the AUX > channel gets functional. To avoid detection failures this delay > causes > retry the detection for 5 seconds. 5 seconds? would it be 5 tries? Other than that both patches looks good. Reviewed-by: José Roberto de Souza <jose.souza@xxxxxxxxx> > > I noticed this on ICL/TGL RVPs and a DELL XPS 13 7390 ICL laptop. > > References: https://gitlab.freedesktop.org/drm/intel/issues/1067 > Signed-off-by: Imre Deak <imre.deak@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_ddi.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c > b/drivers/gpu/drm/i915/display/intel_ddi.c > index 4f508bf70f3b..2d947ff83488 100644 > --- a/drivers/gpu/drm/i915/display/intel_ddi.c > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c > @@ -4371,7 +4371,10 @@ static enum intel_hotplug_state > intel_ddi_hotplug(struct intel_encoder *encoder, > struct intel_connector *connector) > { > + struct drm_i915_private *i915 = to_i915(encoder->base.dev); > struct intel_digital_port *dig_port = enc_to_dig_port(encoder); > + enum phy phy = intel_port_to_phy(i915, encoder->port); > + bool is_tc = intel_phy_is_tc(i915, phy); > struct drm_modeset_acquire_ctx ctx; > enum intel_hotplug_state state; > int ret; > @@ -4414,8 +4417,15 @@ intel_ddi_hotplug(struct intel_encoder > *encoder, > * valid EDID. To solve this schedule another detection cycle > if this > * time around we didn't detect any change in the sink's > connection > * status. > + * > + * Type-c connectors which get their HPD signal deasserted then > + * reasserted, without unplugging/replugging the sink from the > + * connector, introduce a delay until the AUX channel > communication > + * becomes functional. Retry the detection for 5 seconds on > type-c > + * connectors to account for this delay. > */ > - if (state == INTEL_HOTPLUG_UNCHANGED && !connector- > >hotplug_retries && > + if (state == INTEL_HOTPLUG_UNCHANGED && > + connector->hotplug_retries < (is_tc ? 5 : 1) && > !dig_port->dp.is_mst) > state = INTEL_HOTPLUG_RETRY; > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx