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 >
