Hi, I am working on a solution for handling link failures during or after the modeset. In case of link failure, the max link rate/lane count values are updated to lower link rate/lane count as per the spec and uevent is sent to the userspace with link-status BAD. The userspace is expected to first retry the existing mode and do a a full reprobe if this fails. When userspace reprobes the modes, it calls drmModeGetConnector() IOCTL, that eventually calls drm_helper_probe_single_connector_modes(). This helper function calls the connector->func->detect() which in case of i915 calls intel_dp_detect() which calls intel_dp_long_pulse() that resets the max_link_rate and max_link_lane_count values. Now during the link training retry, it uses the reset values of link rate/lane count instead of using the lowered link rate/lane count values from link failure. For this to work properly, we should not reset the link rate/lane count values during the fill_modes() operation from userspace. However the current driver calls the long pulse handler again during fill_modes and resets all the values as per DPCD reads which fails to retrain the link at lower rate. How can we handle this situation? Do we need to call long pulse handler again during fill_modes()? Any ideas/suggestions? Regards Manasi _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx