On Tue, Sep 08, 2026 at 06:25:04AM +0300, Murthy, Arun R wrote:
> 
> > -----Original Message-----
> > From: Intel-gfx <[email protected]> On Behalf Of Imre
> > Deak
> > Sent: Monday, September 7, 2026 11:14 PM
> > To: [email protected]; [email protected]
> > Cc: [email protected]
> > Subject: [PATCH 1/2] drm/i915/dp_mst: Fix configuring FEC for a disconnected
> > stream
> > 
> > During an atomic commit after all the MST stream CRTC state is computed the
> > driver ensures that the FEC is configured the same way (enabled or
> > disabled) for all the streams on a given MST topology's link.
> > drm_dp_mst_port_downstream_of_parent() used to determine if a stream is
> > downstream of an MST port will return false if the whole topology is
> > disconnected, since in that case it can't verify that the port/ parent_port 
> > passed
> > to it is in the given MST topology. This is a problem during the above FEC
> > configuration check, since
> > intel_dp_mst_check_dsc_change()->get_pipes_downstream_of_mst_ports()
> > will not return all the stream CRTCs/pipes for the topology as expected.
> > Since passing parent_port==NULL to get_pipes_downstream_of_mst_port()
> > is meant to return all the streams for the given topology (i.e. mst_mgr) 
> > skip
> > checking if an MST port is downstream of a parent port in this case.
> > 
> I already have a fix for this posted long back.
> https://patchwork.freedesktop.org/series/168570/

I explained the problem of that patchset in:
https://lore.kernel.org/all/[email protected]

> Thanks and Regards,
> Arun R Murthy
> --------------------
> > This fixes a problem where the FEC configuration check explained above 
> > failed
> > to ensure that all streams' FEC is configured the same way if the topology 
> > was
> > disconnected, leading to a FEC state mismatch error.
> > 
> > Cc: [email protected] # v6.10+
> > Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/16073
> > Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/16384
> > Signed-off-by: Imre Deak <[email protected]>
> > ---
> >  drivers/gpu/drm/i915/display/intel_dp_mst.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > index 6a869d0f6ffc0..20766b6c0bcfa 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > @@ -856,7 +856,8 @@ static u8 get_pipes_downstream_of_mst_port(struct
> > intel_atomic_state *state,
> >             if (&connector->mst.dp->mst.mgr != mst_mgr)
> >                     continue;
> > 
> > -           if (connector->mst.port != parent_port &&
> > +           if (parent_port &&
> > +               connector->mst.port != parent_port &&
> >                 !drm_dp_mst_port_downstream_of_parent(mst_mgr,
> >                                                       connector->mst.port,
> >                                                       parent_port))
> > --
> > 2.49.1
> 

Reply via email to