On Thu, 01 Oct 2026, FNU VISHWANATHA <[email protected]> wrote:
> The intermittent detection failure of the second display over MST HUB is
> caused
> by a race condition in MST port status detection during warm boot/G3 resume.
>
> When a port transitions from input to output state during topology reprobe,
> the
> driver was not forcing a re-probe of the link address. This caused ports that
> were temporarily incorrectly marked as input ports to never create connectors.
>
> Force a link address reprobe when a port transitions from input (1) to output
> (0) state, giving the MST hub another chance to properly report the port
> status.
>
> Signed-off-by: FNU VISHWANATHA <[email protected]>
Is there a bug report about this with logs?
> ---
> drivers/gpu/drm/display/drm_dp_mst_topology.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/display/drm_dp_mst_topology.c
> b/drivers/gpu/drm/display/drm_dp_mst_topology.c
> index be749dcad3b5..cc340e4235cc 100644
> --- a/drivers/gpu/drm/display/drm_dp_mst_topology.c
> +++ b/drivers/gpu/drm/display/drm_dp_mst_topology.c
> @@ -2377,7 +2377,11 @@ drm_dp_mst_handle_link_address_port(struct
> drm_dp_mst_branch *mstb,
> changed = true;
> created = true;
> } else if (port->input && !port_msg->input_port) {
> + /* Port transitioned from input to output (e.g., during warm
> boot/G3 resume)
> + * We need to force link address reprobe to get proper port
> info
> + */
> changed = true;
> + mstb->link_address_sent = false;
> } else if (port->connector) {
> /* We're updating a port that's exposed to userspace, so do it
> * under lock
--
Jani Nikula, Intel