[PATCH 2/4] drm/dp_mst: Don't cache EDIDs for physical ports

Lin, Wayne Wayne.Lin at amd.com
Tue Feb 2 03:38:16 UTC 2021


[AMD Public Use]

> -----Original Message-----
> From: Imre Deak <imre.deak at intel.com>
> Sent: Monday, February 1, 2021 8:02 PM
> To: dri-devel at lists.freedesktop.org
> Cc: Lin, Wayne <Wayne.Lin at amd.com>; Lyude Paul <lyude at redhat.com>
> Subject: [PATCH 2/4] drm/dp_mst: Don't cache EDIDs for physical ports
>
> Caching EDIDs for physical ports prevents updating the EDID if a port gets reconnected via a Connection Status Notification message,
> fix this.
>
> Fixes: db1a07956968 ("drm/dp_mst: Handle SST-only branch device case")
> Cc: Wayne Lin <Wayne.Lin at amd.com>
> Cc: Lyude Paul <lyude at redhat.com>
> Signed-off-by: Imre Deak <imre.deak at intel.com>
> ---
>  drivers/gpu/drm/drm_dp_mst_topology.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
> index deb7995f42fa..309afe61afdd 100644
> --- a/drivers/gpu/drm/drm_dp_mst_topology.c
> +++ b/drivers/gpu/drm/drm_dp_mst_topology.c
> @@ -2302,7 +2302,8 @@ drm_dp_mst_port_add_connector(struct drm_dp_mst_branch *mstb,
>  }
>
>  if (port->pdt != DP_PEER_DEVICE_NONE &&
> -    drm_dp_mst_is_end_device(port->pdt, port->mcs)) {
> +    drm_dp_mst_is_end_device(port->pdt, port->mcs) &&
> +    port->port_num >= DP_MST_LOGICAL_PORT_0) {
Hi Imre Deak,

Thanks for the patch!
Just curious that you mean we don't want to fetch the EDID of the sst monitor like below case?
    Src->MST device ->SST monitor
I thought we still need to get the EDID even the monitor is connected to the physical output port of mst device.
Maybe what we should fix here is why the EDID is not get updated once reconnected via CSN message?

Thanks!
>  port->cached_edid = drm_get_edid(port->connector,
>   &port->aux.ddc);
>  drm_connector_set_tile_property(port->connector);
> --
> 2.25.1
Regards,
Wayne Lin


More information about the dri-devel mailing list