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

Reply via email to