[PATCH v2 1/2] tests/intel/kms_pm_dc: Add DC5 DPMS suspend/resume validation test

Mohammed Thasleem
2026-01-22T18:27:10Z

Validate DC5 state entry before and after suspend/resume cycle using DPMS.
Ensures DC5 functionality is preserved across system suspend/resume
operations.

v2: Remove repeated word. (Pranay)
Remove extra line.

Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
tests/intel/kms_pm_dc.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)

diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c
index 5e59ba6e0..fde16ebf7 100644
--- a/tests/intel/kms_pm_dc.c
+++ b/tests/intel/kms_pm_dc.c
@@ -77,6 +77,9 @@
*
* SUBTEST: dc5-retention-flops
* Description: This test validates display engine entry to DC5 state while PSR is active on Pipe B
+ *
+ * SUBTEST: dc5-dpms-suspend-resume
+ * Description: This test validate DC5 state entry before and after suspend/resume cycle using DPMS
*/

/* DC State Flags */
@@ -721,6 +724,14 @@ static void test_deep_pkgc_state(data_t *data)
igt_assert_f(pkgc_flag, "PKGC10 is not achieved.\n");
}

+static void test_dc5_dpms_suspend_resume(data_t *data, int dc_flag)
+{
+ test_dc_state_dpms(data, dc_flag);
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM, SUSPEND_TEST_NONE);
+ test_dc_state_dpms(data, dc_flag);
+
+}
+
static void kms_poll_state_restore(int sig)
{
int sysfs_fd;
@@ -841,6 +852,11 @@ int igt_main()
test_dc9_dpms(&data);
}

+ igt_describe("This test validates display engine entry to DC5 state "
+ "before and after suspend/resume cycle using DPMS");
+ igt_subtest("dc5-dpms-suspend-resume")
+ test_dc5_dpms_suspend_resume(&data, CHECK_DC5);
+
igt_fixture() {
free(data.debugfs_dump);
close(data.debugfs_fd);
--
2.25.1