On Wed, Sep 20, 2023 at 02:25:14PM +0300, Lisovskiy, Stanislav wrote: > On Wed, Sep 20, 2023 at 01:59:53PM +0300, Ville Syrjälä wrote: > > On Wed, Sep 20, 2023 at 12:11:58PM +0300, Lisovskiy, Stanislav wrote: > > > On Thu, Sep 14, 2023 at 10:26:52PM +0300, Imre Deak wrote: > > > > If an MST stream is modeset, its state must be checked along all the > > > > other streams on the same MST link, for instance to resolve a BW > > > > overallocation of a non-sink MST port or to make sure that the FEC is > > > > enabled/disabled the same way for all these streams. > > > > > > > > To prepare for that this patch adds all the stream CRTCs to the atomic > > > > state and marks them for modeset similarly to tgl+ platforms. (If the > > > > state computation doesn't change the state the CRTC is switched back to > > > > fastset mode.) > > > > > > > > Signed-off-by: Imre Deak <imre.deak@xxxxxxxxx> > > > > --- > > > > drivers/gpu/drm/i915/display/intel_dp_mst.c | 3 --- > > > > 1 file changed, 3 deletions(-) > > > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c > > > > index c1fea894d3774..832e8b0e87e84 100644 > > > > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c > > > > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c > > > > @@ -491,9 +491,6 @@ intel_dp_mst_atomic_master_trans_check(struct intel_connector *connector, > > > > struct intel_connector *connector_iter; > > > > int ret = 0; > > > > > > > > - if (DISPLAY_VER(dev_priv) < 12) > > > > - return 0; > > > > - > > > > > > I'm just a bit concerned, why this check was initially added? > > > Probably there was a reason? > > > > It's in the name of the function, which should be renamed if we're > > extending it beyond its original purpose. > > Well, I would say this check could be "a bit" more descriptive. > Still, even if function name gets changed, we just remove the check, for the > function which was initially not even intended to be called for pre-tgl? The change on tgl+ platforms is that all the MST streams go through a master transcoder, while on old platforms each stream has only its own transcoder. Hence on tgl+ all streams/CRTCs may need to be modeset, at least in the case the CRTC owning the master transcoder (for instance pipe A/transcoder A) is modeset. So on tgl+ here all CRTCs for a given MST topology is added to the state/marked for modeset. pre-tgl this wasn't necessary, until the need to recalculate the BW requirement of each stream came up, as described in the commit log. I can clarify the above in the commit log and rename the function accordingly, is that ok? > Why it became suitable now then? Or was it just wrong check? > > Stan > > > > > > > > > Stan > > > > > > > if (!intel_connector_needs_modeset(state, &connector->base)) > > > > return 0; > > > > > > > > -- > > > > 2.37.2 > > > > > > > > -- > > Ville Syrjälä > > Intel