[PATCH v2 02/12] drm/i915/dp_mst: Simplify handling the single-bpp case during state computation

Nautiyal, Ankit K ankit.k.nautiyal at intel.com
Tue May 6 12:32:46 UTC 2025


On 5/6/2025 3:30 PM, Imre Deak wrote:
> On Tue, May 06, 2025 at 03:21:13PM +0530, Nautiyal, Ankit K wrote:
>> On 4/28/2025 7:01 PM, Imre Deak wrote:
>>> A follow-up change wants to skip invalid bpps in the bpp select loop of
>>> a stream state computation. To allow for that, using the usual
>>> 'continue' statement in the loop, change the way the sinlge-bpp range is
>>
>> s/sinlge/single
>>
>>
>>> handled.
>>>
>>> Cc: Jani Nikula <jani.nikula at intel.com>
>>> Signed-off-by: Imre Deak <imre.deak at intel.com>
>>> ---
>>>    drivers/gpu/drm/i915/display/intel_dp_mst.c | 10 ++++++----
>>>    1 file changed, 6 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>>> index 49b836cd8816c..d8033e55dc093 100644
>>> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
>>> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>>> @@ -283,6 +283,12 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
>>>    					   fxp_q4_to_frac(max_bpp_x16) ||
>>>    					   fxp_q4_to_frac(bpp_step_x16)));
>>> +	if (!bpp_step_x16) {
>>> +		/* Allow using zero step only to indicate single try for a given bpp. */
>>> +		drm_WARN_ON(display->drm, min_bpp_x16 != max_bpp_x16);
>>> +		bpp_step_x16 = 1;
>>> +	}
>> I can see this function is called for non-dsc uhbr case with bpp_step_x16 =0
>> and dsc false.
>>
>> So we just want to get the loop run once and get the slots with min_bpp_x16
>> == max_bpp_x16 == fxp_q4_from_int(pipe_bpp) right?
>>
>> Similarly for dsc uhbr case check with a given compressed bpp dsc_bpp_x16 if
>> its valid.
>>
>> bpp_step_x16 = 1 will mean 1/16th fraction. The value itself won't have any
>> effect for the case where min_bpp_x16 == max_bpp_x16.
>>
>> Is my understanding correct here?
> Yes, correct. On SST UHBR for each bpp a minimal link config is
> selected, so this function - checking if the link config is valid - is
> called for a single bpp only, hence min_bpp_x16 == max_bpp_x16.


Thanks for the confirmation.

LGTM.

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

>
>> Regards,
>>
>> Ankit
>>
>>
>>
>>
>>
>>> +
>>>    	if (is_mst) {
>>>    		mst_state = drm_atomic_get_mst_topology_state(state, &intel_dp->mst.mgr);
>>>    		if (IS_ERR(mst_state))
>>> @@ -408,10 +414,6 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
>>>    			break;
>>>    		}
>>> -
>>> -		/* Allow using zero step to indicate one try */
>>> -		if (!bpp_step_x16)
>>> -			break;
>>>    	}
>>>    	if (slots < 0) {


More information about the Intel-xe mailing list