[PATCH i-g-t v3 4/5] lib/igt_pm: Move check_dpms to igt_pm lib

Karthik B S karthik.b.s at intel.com
Wed Jul 23 05:53:52 UTC 2025


The check_dpms function in kms_pm_backlight.c is moved to igt_pm lib
to make it accessible to other subtests which need to perform a
simple DPMS toggle.

Signed-off-by: Karthik B S <karthik.b.s at intel.com>
---
 lib/igt_pm.c                   | 21 +++++++++++++++++++++
 lib/igt_pm.h                   |  1 +
 tests/intel/kms_pm_backlight.c | 20 ++------------------
 3 files changed, 24 insertions(+), 18 deletions(-)

diff --git a/lib/igt_pm.c b/lib/igt_pm.c
index 7f9cbd69a..cf1c442f8 100644
--- a/lib/igt_pm.c
+++ b/lib/igt_pm.c
@@ -1487,3 +1487,24 @@ bool igt_has_pci_pm_capability(struct pci_device *pci_dev)
 
 	return (offset > 0);
 }
+
+/**
+ * igt_pm_dpms_toggle:
+ * @output: igt output for which DPMS toggle has to be performed
+ *
+ * Toggles the DPMS state of output to OFF and then back ON.
+ */
+void igt_pm_dpms_toggle(igt_output_t *output)
+{
+	igt_require(igt_setup_runtime_pm(output->display->drm_fd));
+
+	kmstest_set_connector_dpms(output->display->drm_fd,
+				   output->config.connector,
+				   DRM_MODE_DPMS_OFF);
+	igt_require(igt_wait_for_pm_status(IGT_RUNTIME_PM_STATUS_SUSPENDED));
+
+	kmstest_set_connector_dpms(output->display->drm_fd,
+				   output->config.connector,
+				   DRM_MODE_DPMS_ON);
+	igt_assert(igt_wait_for_pm_status(IGT_RUNTIME_PM_STATUS_ACTIVE));
+}
diff --git a/lib/igt_pm.h b/lib/igt_pm.h
index c73972f2a..e931e51af 100644
--- a/lib/igt_pm.h
+++ b/lib/igt_pm.h
@@ -98,5 +98,6 @@ uint64_t igt_pm_get_runtime_active_time(struct pci_device *pci_dev);
 int igt_pm_get_runtime_usage(struct pci_device *pci_dev);
 void igt_pm_ignore_slpc_efficient_freq(int i915, int gtfd, bool val);
 bool igt_has_pci_pm_capability(struct pci_device *pci_dev);
+void igt_pm_dpms_toggle(igt_output_t *output);
 
 #endif /* IGT_PM_H */
diff --git a/tests/intel/kms_pm_backlight.c b/tests/intel/kms_pm_backlight.c
index 9b341c73a..a0ecf2b0e 100644
--- a/tests/intel/kms_pm_backlight.c
+++ b/tests/intel/kms_pm_backlight.c
@@ -142,22 +142,6 @@ static void test_fade(igt_backlight_context_t *context)
 	}
 }
 
-static void
-check_dpms(igt_output_t *output)
-{
-	igt_require(igt_setup_runtime_pm(output->display->drm_fd));
-
-	kmstest_set_connector_dpms(output->display->drm_fd,
-				   output->config.connector,
-				   DRM_MODE_DPMS_OFF);
-	igt_require(igt_wait_for_pm_status(IGT_RUNTIME_PM_STATUS_SUSPENDED));
-
-	kmstest_set_connector_dpms(output->display->drm_fd,
-				   output->config.connector,
-				   DRM_MODE_DPMS_ON);
-	igt_assert(igt_wait_for_pm_status(IGT_RUNTIME_PM_STATUS_ACTIVE));
-}
-
 static void check_dpms_cycle(igt_backlight_context_t *context)
 {
 	int max, val_1, val_2;
@@ -168,7 +152,7 @@ static void check_dpms_cycle(igt_backlight_context_t *context)
 	igt_backlight_write(max / 2, "brightness", context);
 	igt_backlight_read(&val_1, "actual_brightness", context);
 
-	check_dpms(context->output);
+	igt_pm_dpms_toggle(context->output);
 
 	igt_backlight_read(&val_2, "actual_brightness", context);
 	igt_assert_eq(val_1, val_2);
@@ -310,7 +294,7 @@ igt_main
 				test_setup(display, &contexts->output[j]);
 
 				if (tests[i].flags == TEST_DPMS)
-					check_dpms(contexts[j].output);
+					igt_pm_dpms_toggle(contexts[j].output);
 
 				if (tests[i].flags == TEST_SUSPEND)
 					check_suspend(contexts[j].output);
-- 
2.43.0



More information about the igt-dev mailing list