[PATCH i-g-t v4] tests/intel/kms_pm_dc: Add skip logic and logging for DC5 psr test

Kamil Konieczny kamil.konieczny at linux.intel.com
Mon Mar 24 13:21:11 UTC 2025


Hi Mohammed,
On 2025-03-21 at 23:22:59 +0530, Mohammed Thasleem wrote:
> Prior to Gen12, Pipe A is required to run the DC5 transaction,
> ensuring low power operation. In display versions greater than 12,
> either Pipe A or Pipe B can be used for the DC5 transaction,
> providing flexibility in pipe selection
> 
> However, display version 20 specifically requires Pipe A.
> Additionally, for Battlemage and DG2 devices, only Pipe A is
> required due to specific hardware constraints. To enforce these
> conditions, skip logic and logging have been added, ensuring that
> tests are only executed when the appropriate pipes are selected.
> 
> v2: Updated subject title and discription.
>     Add Gen checks for low power pipe selection. (Santosh)
> v3: Add check for bmg and dg2 for Pipe A also other checks for Pipe A
>     and B. (Gustavo)
> v4: Update logic style. (Gustavo)
> 
> Signed-off-by: Mohammed Thasleem <mohammed.thasleem at intel.com>
> Reviewed-by: Santhosh Reddy Guddati <santhosh.reddy.guddati at intel.com>
> Reviewed-by: Gustavo Sousa <gustavo.sousa at intel.com>
> ---
>  tests/intel/kms_pm_dc.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c
> index 50473321a..4b2464c24 100644
> --- a/tests/intel/kms_pm_dc.c
> +++ b/tests/intel/kms_pm_dc.c
> @@ -145,13 +145,26 @@ static void set_output_on_pipe_b(data_t *data)
>  
>  static void setup_output(data_t *data)
>  {
> +	int disp_ver = intel_display_ver(data->devid);
>  	igt_display_t *display = &data->display;
>  	igt_output_t *output;
> +	bool is_low_power;
>  	enum pipe pipe;
>  
>  	for_each_pipe_with_valid_output(display, pipe, output) {
>  		drmModeConnectorPtr c = output->config.connector;
>  
> +		if (disp_ver >= 13) {
> +			if (disp_ver == 20 || IS_BATTLEMAGE(data->devid) || IS_DG2(data->devid))
> +				is_low_power = (pipe == PIPE_A);
> +			else
> +				is_low_power = (pipe == PIPE_A || pipe == PIPE_B);
> +		} else {
> +			is_low_power = (pipe == PIPE_A);
> +		}
> +
> +		igt_skip_on_f(!is_low_power, "Low power pipe was not selected for the DC5 transaction.\n");

Why do you skip here? Imho it could debug print about low power
and continue, just like below if ... CONNECTOR_eDP, so

		if (!is_low_power) {
			igt_debug("Low power pipe%c was not selected for the DC5 transaction.\n",
				   pipe == PIPE_A ? 'A' : 'B');
			continue;
		}

Btw I hope that there is later on a check that anything was
actually tested.

Regards,
Kamil

> +
>  		if (c->connector_type != DRM_MODE_CONNECTOR_eDP)
>  			continue;
>  
> -- 
> 2.43.0
> 


More information about the igt-dev mailing list