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

Mohammed Thasleem mohammed.thasleem at intel.com
Fri Mar 21 09:21:20 UTC 2025


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)

Signed-off-by: Mohammed Thasleem <mohammed.thasleem at intel.com>
Reviewed-by: Santhosh Reddy Guddati <santhosh.reddy.guddati at intel.com>
---
 tests/intel/kms_pm_dc.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c
index 50473321a..b23c13363 100644
--- a/tests/intel/kms_pm_dc.c
+++ b/tests/intel/kms_pm_dc.c
@@ -148,10 +148,16 @@ static void setup_output(data_t *data)
 	igt_display_t *display = &data->display;
 	igt_output_t *output;
 	enum pipe pipe;
+	int disp_ver = intel_display_ver(data->devid);
 
 	for_each_pipe_with_valid_output(display, pipe, output) {
 		drmModeConnectorPtr c = output->config.connector;
 
+		igt_skip_on_f(((IS_BATTLEMAGE(data->devid) || IS_DG2(data->devid)) && pipe != PIPE_A) ||
+			      (disp_ver <= 12 && pipe != PIPE_A) || (disp_ver == 20 && pipe != PIPE_A) ||
+			      (disp_ver > 12 && disp_ver != 20 && !(pipe == PIPE_A || pipe == PIPE_B)),
+			       "Low power pipe was not selected for the DC5 transaction.\n");
+
 		if (c->connector_type != DRM_MODE_CONNECTOR_eDP)
 			continue;
 
-- 
2.43.0



More information about the igt-dev mailing list