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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 02, 2021 at 03:38:16AM +0000, Lin, Wayne wrote:
> [AMD Public Use]
> 
> > -----Original Message-----
> > From: Imre Deak <imre.deak@xxxxxxxxx>
> > Sent: Monday, February 1, 2021 8:02 PM
> > To: dri-devel@xxxxxxxxxxxxxxxxxxxxx
> > Cc: Lin, Wayne <Wayne.Lin@xxxxxxx>; Lyude Paul <lyude@xxxxxxxxxx>
> > 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@xxxxxxx>
> > Cc: Lyude Paul <lyude@xxxxxxxxxx>
> > Signed-off-by: Imre Deak <imre.deak@xxxxxxxxx>
> > ---
> >  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

The intention of the mst cached_edid logic is to cache the EDID for
logical ports where the EDID cannot change anyway. The EDID on physical
ports is fetched during connector probing just as for any other
connector.

> I thought we still need to get the EDID even the monitor is connected
> to the physical output port of mst device.

For sinks attached to phyisical ports we get the EDID whenever probing
the corresponding connector.

> Maybe what we should fix here is why the EDID is not get updated once
> reconnected via CSN message?

This patch fixes the problem that we stopped updating the EDID for
physical connectors. After this change it will get updated when probing
such connectors.

> 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
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux