[PATCH v2 05/12] drm/i915/dp_mst: Check BW limit on the local MST link early

Nautiyal, Ankit K ankit.k.nautiyal at intel.com
Tue May 6 10:06:48 UTC 2025


On 4/28/2025 7:01 PM, Imre Deak wrote:
> Check the BW requirement of a selected compressed bpp against the total
> MST link BW early. This didn't cause a problem, since all the BW limits
> within the MST topology are checked during the later MST topology BW
> check. However it doesn't make sense to defer the total link BW check,
> since for resolving a BW limit issue due to this later also (a) requires
> selecting a pipe to reduce the bpp for, ending up reducing the bpp for
Perhaps rephrase:

requires selecting a pipe to reduce its bpp..

In any case, change looks good to me.

Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal at intel.com>


> another pipe, which is not ideal (b) requires recomputing the state for
> all CRTC/stream's in the topology which may slow down the commit
> considerably (especially when using fractional bpps).
>
> Based on the above, check a stream bpp's BW requirement against the MST
> link's total BW early.
>
> Ideally drm_dp_atomic_find_time_slots() should check internally the
> corresponding PBN/TU slot BW against the total link BW, returning an
> error if the check fails, however that change would also affect other
> drivers, so leaving this for a follow-up.
>
> Signed-off-by: Imre Deak <imre.deak at intel.com>
> ---
>   drivers/gpu/drm/i915/display/intel_dp_mst.c | 4 ++++
>   1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index 59afb550cd0cc..77acac8963e27 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -412,6 +412,10 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
>   			slots = drm_dp_atomic_find_time_slots(state, &intel_dp->mst.mgr,
>   							      connector->mst.port,
>   							      dfixed_trunc(pbn));
> +
> +			/* TODO: Check this already in drm_dp_atomic_find_time_slots(). */
> +			if (slots > mst_state->total_avail_slots)
> +				slots = -EINVAL;
>   		} else {
>   			/* Same as above for remote_tu */
>   			crtc_state->dp_m_n.tu = ALIGN(crtc_state->dp_m_n.tu,


More information about the Intel-xe mailing list