[PATCH i-g-t 2/3] tests/intel/kms_psr*: Add psr_sink_error_check to PSR tests

Jouni Högander jouni.hogander at intel.com
Mon Jul 1 05:13:00 UTC 2024


Currently we are ignoring possible errors detected by the sink in our PSR
testcases. Fix this by add psr_sink_error_check to each of them.

Signed-off-by: Jouni Högander <jouni.hogander at intel.com>
---
 tests/intel/kms_frontbuffer_tracking.c | 5 +++--
 tests/intel/kms_pm_dc.c                | 2 ++
 tests/intel/kms_psr.c                  | 2 ++
 tests/intel/kms_psr2_sf.c              | 2 ++
 tests/intel/kms_psr2_su.c              | 2 ++
 tests/intel/kms_psr_stress_test.c      | 1 +
 6 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c
index e45d17dd6..913c7b234 100644
--- a/tests/intel/kms_frontbuffer_tracking.c
+++ b/tests/intel/kms_frontbuffer_tracking.c
@@ -2722,10 +2722,11 @@ static void do_status_assertions(int flags)
 						   prim_mode_params.pipe));
 	}
 
-	if (flags & ASSERT_PSR_ENABLED)
+	if (flags & ASSERT_PSR_ENABLED) {
 		igt_assert_f(psr_wait_entry(drm.debugfs, PSR_MODE_1, NULL),
 			     "PSR still disabled\n");
-	else if (flags & ASSERT_PSR_DISABLED)
+		psr_sink_error_check(drm.debugfs, PSR_MODE_1, prim_mode_params.output);
+	} else if (flags & ASSERT_PSR_DISABLED)
 		igt_assert_f(psr_wait_update(drm.debugfs, PSR_MODE_1, NULL),
 			     "PSR still enabled\n");
 }
diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c
index e1318bfa6..d5753ad32 100644
--- a/tests/intel/kms_pm_dc.c
+++ b/tests/intel/kms_pm_dc.c
@@ -407,6 +407,7 @@ static void test_dc_state_psr(data_t *data, int dc_flag)
 	igt_require(!psr_disabled_check(data->debugfs_fd));
 	igt_assert(psr_wait_entry(data->debugfs_fd, data->op_psr_mode, NULL));
 	check_dc_counter(data, dc_flag, dc_counter_before_psr);
+	psr_sink_error_check(data->debugfs_fd, data->op_psr_mode, data->output);
 	cleanup_dc_psr(data);
 }
 
@@ -675,6 +676,7 @@ static void test_pkgc_state_psr(data_t *data)
 	igt_wait((cur_value = read_pkgc_counter(data->debugfs_root_fd)) > prev_value,
 		  timeout_sec * 1000, 100);
 	igt_assert_f(cur_value > prev_value, "PKGC10 is not achieved.\n");
+	psr_sink_error_check(data->debugfs_fd, data->op_psr_mode, data->output);
 	psr_dpms(data, DRM_MODE_DPMS_ON);
 	cleanup_dc_psr(data);
 }
diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c
index f3caa9ecc..c59476137 100644
--- a/tests/intel/kms_psr.c
+++ b/tests/intel/kms_psr.c
@@ -650,6 +650,8 @@ static void test_cleanup(data_t *data)
 {
 	igt_plane_t *primary;
 
+	psr_sink_error_check(data->debugfs_fd, data->op_psr_mode, data->output);
+
 	igt_output_override_mode(data->output, NULL);
 
 	primary = igt_output_get_plane_type(data->output,
diff --git a/tests/intel/kms_psr2_sf.c b/tests/intel/kms_psr2_sf.c
index 03ff1cddb..a9be1a1ec 100644
--- a/tests/intel/kms_psr2_sf.c
+++ b/tests/intel/kms_psr2_sf.c
@@ -972,6 +972,8 @@ static void run(data_t *data)
 	default:
 		igt_assert(false);
 	}
+
+	psr_sink_error_check(data->debugfs_fd, data->psr_mode, data->output);
 }
 
 static void cleanup(data_t *data)
diff --git a/tests/intel/kms_psr2_su.c b/tests/intel/kms_psr2_su.c
index 437ee36f6..0099daf1d 100644
--- a/tests/intel/kms_psr2_su.c
+++ b/tests/intel/kms_psr2_su.c
@@ -273,6 +273,8 @@ static void run(data_t *data, igt_output_t *output)
 
 	igt_assert_f(result,
 		     "No matching selective update blocks read from debugfs\n");
+
+	psr_sink_error_check(data->debugfs_fd, PSR_MODE_2, output);
 }
 
 static void cleanup(data_t *data, igt_output_t *output)
diff --git a/tests/intel/kms_psr_stress_test.c b/tests/intel/kms_psr_stress_test.c
index d6e2340b8..73a6eb56d 100644
--- a/tests/intel/kms_psr_stress_test.c
+++ b/tests/intel/kms_psr_stress_test.c
@@ -344,6 +344,7 @@ static void run(data_t *data)
 
 	/* Check if after all this stress the PSR is still in the same state */
 	igt_assert(psr_get_mode(data->debugfs_fd, NULL) == data->initial_state);
+	psr_sink_error_check(data->debugfs_fd, data->initial_state, data->output);
 }
 
 igt_main
-- 
2.34.1



More information about the igt-dev mailing list