On Thu, Oct 12, 2017 at 12:13:38PM -0700, Manasi Navare wrote: > In case of eDP because the panel has a fixed mode, the link rate > and lane count at which it is trained corresponds to the link BW > required to support the native resolution of the panel. In case of > panles with lower resolutions where fewer lanes are hooked up internally, > that number is reflected in the MAX_LANE_COUNT DPCD register of the panel. > So it is pointless to fallback to lower link rate/lane count in case > of link training failure on eDP connector since the lower link BW > will not support the native resolution of the panel and we cannot > prune the preferred mode on the eDP connector. > > In case of Link training failure on the eDP panel, something is wrong > in the HW internally and hence driver errors out with a loud > and clear DRM_ERROR message. > > v2: > * Fix the DEBUG_ERROR and add {} in else (Ville Syrjala) > > Cc: Clinton Taylor <clinton.a.taylor@xxxxxxxxx> > Cc: Jim Bride <jim.bride@xxxxxxxxxxxxxxx> > Cc: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> > Cc: Ville Syrjala <ville.syrjala@xxxxxxxxxxxxxxx> > Cc: Dave Airlie <airlied@xxxxxxxxxx> > Cc: Daniel Vetter <daniel.vetter@xxxxxxxx> > Signed-off-by: Manasi Navare <manasi.d.navare@xxxxxxxxx> > Reviewed-by: Ville Syrjala <ville.syrjala@xxxxxxxxxxxxxxx> This fell through the cracks, looks like it partially fixes https://bugs.freedesktop.org/show_bug.cgi?id=103369 Why link training fails there is not clear. > --- > drivers/gpu/drm/i915/intel_dp_link_training.c | 26 +++++++++++++++++--------- > 1 file changed, 17 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_dp_link_training.c b/drivers/gpu/drm/i915/intel_dp_link_training.c > index 05907fa..cf8fef8 100644 > --- a/drivers/gpu/drm/i915/intel_dp_link_training.c > +++ b/drivers/gpu/drm/i915/intel_dp_link_training.c > @@ -328,14 +328,22 @@ intel_dp_start_link_train(struct intel_dp *intel_dp) > return; > > failure_handling: > - DRM_DEBUG_KMS("[CONNECTOR:%d:%s] Link Training failed at link rate = %d, lane count = %d", > - intel_connector->base.base.id, > - intel_connector->base.name, > - intel_dp->link_rate, intel_dp->lane_count); > - if (!intel_dp_get_link_train_fallback_values(intel_dp, > - intel_dp->link_rate, > - intel_dp->lane_count)) > - /* Schedule a Hotplug Uevent to userspace to start modeset */ > - schedule_work(&intel_connector->modeset_retry_work); > + /* Dont fallback and prune modes if its eDP */ > + if (!intel_dp_is_edp(intel_dp)) { > + DRM_DEBUG_KMS("[CONNECTOR:%d:%s] Link Training failed at link rate = %d, lane count = %d", > + intel_connector->base.base.id, > + intel_connector->base.name, > + intel_dp->link_rate, intel_dp->lane_count); > + if (!intel_dp_get_link_train_fallback_values(intel_dp, > + intel_dp->link_rate, > + intel_dp->lane_count)) > + /* Schedule a Hotplug Uevent to userspace to start modeset */ > + schedule_work(&intel_connector->modeset_retry_work); > + } else { > + DRM_ERROR("[CONNECTOR:%d:%s] Link Training failed at link rate = %d, lane count = %d", > + intel_connector->base.base.id, > + intel_connector->base.name, > + intel_dp->link_rate, intel_dp->lane_count); > + } > return; > } > -- > 2.1.4 > > _______________________________________________ > 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