<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="appendonsend"></div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<hr style="display: inline-block; width: 98%;">
<div id="divRplyFwdMsg">
<div style="direction: ltr; font-family: Calibri, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<b>From:</b> B S, Karthik <karthik.b.s@intel.com><br>
<b>Sent:</b> Wednesday, July 23, 2025 11:23 AM<br>
<b>To:</b> igt-dev@lists.freedesktop.org <igt-dev@lists.freedesktop.org><br>
<b>Cc:</b> Reddy Guddati, Santhosh <santhosh.reddy.guddati@intel.com>; Murthy, Arun R <arun.r.murthy@intel.com>; B, Jeevan <jeevan.b@intel.com>; B S, Karthik <karthik.b.s@intel.com><br>
<b>Subject:</b> [PATCH i-g-t v3 4/5] lib/igt_pm: Move check_dpms to igt_pm lib</div>
<div style="direction: ltr;"> </div>
</div>
<div style="font-size: 11pt;">The check_dpms function in kms_pm_backlight.c is moved to igt_pm lib<br>
to make it accessible to other subtests which need to perform a<br>
simple DPMS toggle.<br>
<br>
Signed-off-by: Karthik B S <karthik.b.s@intel.com><br>
---<br>
 lib/igt_pm.c                   | 21 +++++++++++++++++++++<br>
 lib/igt_pm.h                   |  1 +<br>
 tests/intel/kms_pm_backlight.c | 20 ++------------------<br>
 3 files changed, 24 insertions(+), 18 deletions(-)<br>
<br>
diff --git a/lib/igt_pm.c b/lib/igt_pm.c<br>
index 7f9cbd69a..cf1c442f8 100644<br>
--- a/lib/igt_pm.c<br>
+++ b/lib/igt_pm.c<br>
@@ -1487,3 +1487,24 @@ bool igt_has_pci_pm_capability(struct pci_device *pci_dev)<br>
 <br>
         return (offset > 0);<br>
 }<br>
+<br>
+/**<br>
+ * igt_pm_dpms_toggle:<br>
+ * @output: igt output for which DPMS toggle has to be performed<br>
+ *<br>
+ * Toggles the DPMS state of output to OFF and then back ON.<br>
+ */<br>
+void igt_pm_dpms_toggle(igt_output_t *output)<br>
+{<br>
+       igt_require(igt_setup_runtime_pm(output->display->drm_fd));<br>
+<br>
+       kmstest_set_connector_dpms(output->display->drm_fd,<br>
+                                  output->config.connector,<br>
+                                  DRM_MODE_DPMS_OFF);<br>
+       igt_require(igt_wait_for_pm_status(IGT_RUNTIME_PM_STATUS_SUSPENDED));<br>
+<br>
+       kmstest_set_connector_dpms(output->display->drm_fd,<br>
+                                  output->config.connector,<br>
+                                  DRM_MODE_DPMS_ON);<br>
+       igt_assert(igt_wait_for_pm_status(IGT_RUNTIME_PM_STATUS_ACTIVE));<br>
+}<br>
diff --git a/lib/igt_pm.h b/lib/igt_pm.h<br>
index c73972f2a..e931e51af 100644<br>
--- a/lib/igt_pm.h<br>
+++ b/lib/igt_pm.h<br>
@@ -98,5 +98,6 @@ uint64_t igt_pm_get_runtime_active_time(struct pci_device *pci_dev);<br>
 int igt_pm_get_runtime_usage(struct pci_device *pci_dev);<br>
 void igt_pm_ignore_slpc_efficient_freq(int i915, int gtfd, bool val);<br>
 bool igt_has_pci_pm_capability(struct pci_device *pci_dev);<br>
+void igt_pm_dpms_toggle(igt_output_t *output);</div>
<div style="font-size: 11pt; color: rgb(0, 0, 0);" class="elementToProof"><br>
</div>
<div style="font-size: 11pt; color: rgb(0, 0, 0);" class="elementToProof">LGTM,</div>
<div style="font-size: 11pt; color: rgb(0, 0, 0);" class="elementToProof">Reviewed-by: Santhosh Reddy Guddati <santhosh.reddy.guddati@intel.com></div>
<div style="font-size: 11pt;"> <br>
 #endif /* IGT_PM_H */<br>
diff --git a/tests/intel/kms_pm_backlight.c b/tests/intel/kms_pm_backlight.c<br>
index 9b341c73a..a0ecf2b0e 100644<br>
--- a/tests/intel/kms_pm_backlight.c<br>
+++ b/tests/intel/kms_pm_backlight.c<br>
@@ -142,22 +142,6 @@ static void test_fade(igt_backlight_context_t *context)<br>
         }<br>
 }<br>
 <br>
-static void<br>
-check_dpms(igt_output_t *output)<br>
-{<br>
-       igt_require(igt_setup_runtime_pm(output->display->drm_fd));<br>
-<br>
-       kmstest_set_connector_dpms(output->display->drm_fd,<br>
-                                  output->config.connector,<br>
-                                  DRM_MODE_DPMS_OFF);<br>
-       igt_require(igt_wait_for_pm_status(IGT_RUNTIME_PM_STATUS_SUSPENDED));<br>
-<br>
-       kmstest_set_connector_dpms(output->display->drm_fd,<br>
-                                  output->config.connector,<br>
-                                  DRM_MODE_DPMS_ON);<br>
-       igt_assert(igt_wait_for_pm_status(IGT_RUNTIME_PM_STATUS_ACTIVE));<br>
-}<br>
-<br>
 static void check_dpms_cycle(igt_backlight_context_t *context)<br>
 {<br>
         int max, val_1, val_2;<br>
@@ -168,7 +152,7 @@ static void check_dpms_cycle(igt_backlight_context_t *context)<br>
         igt_backlight_write(max / 2, "brightness", context);<br>
         igt_backlight_read(&val_1, "actual_brightness", context);<br>
 <br>
-       check_dpms(context->output);<br>
+       igt_pm_dpms_toggle(context->output);<br>
 <br>
         igt_backlight_read(&val_2, "actual_brightness", context);<br>
         igt_assert_eq(val_1, val_2);<br>
@@ -310,7 +294,7 @@ igt_main<br>
                                 test_setup(display, &contexts->output[j]);<br>
 <br>
                                 if (tests[i].flags == TEST_DPMS)<br>
-                                       check_dpms(contexts[j].output);<br>
+                                       igt_pm_dpms_toggle(contexts[j].output);<br>
 <br>
                                 if (tests[i].flags == TEST_SUSPEND)<br>
                                         check_suspend(contexts[j].output);<br>
--<br>
2.43.0<br>
<br>
</div>
</body>
</html>