On Thu, Dec 13, 2018 at 09:48:48PM +0200, Imre Deak wrote: > It's useful to see at which point a TypeC port gets disconnected, so add > add a debug print for it. > > Cc: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx> > Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > Cc: José Roberto de Souza <jose.souza@xxxxxxxxx> > Cc: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> > Signed-off-by: Imre Deak <imre.deak@xxxxxxxxx> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_dp.c | 34 ++++++++++++++++++++++++---------- > 1 file changed, 24 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c > index e94faa0a42eb..082594bb65a7 100644 > --- a/drivers/gpu/drm/i915/intel_dp.c > +++ b/drivers/gpu/drm/i915/intel_dp.c > @@ -5066,28 +5066,38 @@ static bool icl_combo_port_connected(struct drm_i915_private *dev_priv, > return I915_READ(SDEISR) & SDE_DDI_HOTPLUG_ICP(port); > } > > +static const char *tc_type_name(enum tc_port_type type) > +{ > + static const char *names[] = { > + [TC_PORT_UNKNOWN] = "unknown", > + [TC_PORT_LEGACY] = "legacy", > + [TC_PORT_TYPEC] = "typec", > + [TC_PORT_TBT] = "tbt", > + }; > + > + if (WARN_ON(type >= ARRAY_SIZE(names))) > + type = TC_PORT_UNKNOWN; > + > + return names[type]; > +} > + > static void icl_update_tc_port_type(struct drm_i915_private *dev_priv, > struct intel_digital_port *intel_dig_port, > bool is_legacy, bool is_typec, bool is_tbt) > { > enum port port = intel_dig_port->base.port; > enum tc_port_type old_type = intel_dig_port->tc_type; > - const char *type_str; > > WARN_ON(is_legacy + is_typec + is_tbt != 1); > > - if (is_legacy) { > + if (is_legacy) > intel_dig_port->tc_type = TC_PORT_LEGACY; > - type_str = "legacy"; > - } else if (is_typec) { > + else if (is_typec) > intel_dig_port->tc_type = TC_PORT_TYPEC; > - type_str = "typec"; > - } else if (is_tbt) { > + else if (is_tbt) > intel_dig_port->tc_type = TC_PORT_TBT; > - type_str = "tbt"; > - } else { > + else > return; > - } > > /* Types are not supposed to be changed at runtime. */ > WARN_ON(old_type != TC_PORT_UNKNOWN && > @@ -5095,7 +5105,7 @@ static void icl_update_tc_port_type(struct drm_i915_private *dev_priv, > > if (old_type != intel_dig_port->tc_type) > DRM_DEBUG_KMS("Port %c has TC type %s\n", port_name(port), > - type_str); > + tc_type_name(intel_dig_port->tc_type)); > } > > static void icl_tc_phy_disconnect(struct drm_i915_private *dev_priv, > @@ -5187,6 +5197,10 @@ static void icl_tc_phy_disconnect(struct drm_i915_private *dev_priv, > I915_WRITE(PORT_TX_DFLEXDPCSSS, val); > } > > + DRM_DEBUG_KMS("Port %c TC type %s disconnected\n", > + port_name(dig_port->base.port), > + tc_type_name(dig_port->tc_type)); > + > dig_port->tc_type = TC_PORT_UNKNOWN; > } > > -- > 2.13.2 > > _______________________________________________ > 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