From: Jeevan B <jeevan.b@intel.com>
To: igt-dev@lists.freedesktop.org
Cc: bhanuprakash.modem@intel.com, suraj.kandpal@intel.com,
Jeevan B <jeevan.b@intel.com>
Subject: [PATCH i-g-t] tests/intel/kms_pm_dc: Add a new test to validate the deep sleep state during extended vblank
Date: Mon, 27 May 2024 15:51:18 +0530 [thread overview]
Message-ID: <20240527102118.523796-1-jeevan.b@intel.com> (raw)
Add a new test to validate deep sleep states during extended vblank
scenarios, where two frames are committed simultaneously for a given
time with reduced refresh rate.
v2: dealy of one frame added to simulate extended vblank.
remove vrr related debug checks.
v3: fix typo and add define. (Suraj)
Signed-off-by: Jeevan B <jeevan.b@intel.com>
---
tests/intel/kms_pm_dc.c | 54 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c
index 7766d34d7..f7989ed47 100644
--- a/tests/intel/kms_pm_dc.c
+++ b/tests/intel/kms_pm_dc.c
@@ -76,6 +76,10 @@
*
* SUBTEST: dc9-dpms
* Description: This test validates display engine entry to DC9 state
+ *
+ * SUBTEST: deep-pkgc
+ * Description: This test validates display engine entry to PKGC10 state for extended vblank
+ * Functionality: pm_dc
*/
/* DC State Flags */
@@ -89,6 +93,7 @@
#define PACKAGE_CSTATE_PATH "pmc_core/package_cstate_show"
#define KMS_POLL_DISABLE 0
#define DC9_RESETS_DC_COUNTERS(devid) (!(IS_DG1(devid) || IS_DG2(devid) || AT_LEAST_DISPLAY(devid, 14)))
+#define MSECS 1000000
IGT_TEST_DESCRIPTION("Tests to validate display power DC states.");
@@ -584,6 +589,46 @@ static unsigned int read_pkgc_counter(int debugfs_root_fd)
return get_dc_counter(str);
}
+static void test_deep_pkgc_state(data_t *data)
+{
+ unsigned int pre_val = 0, cur_val = 0;
+ time_t start = time(NULL), duration = 2, delay;
+ enum pipe pipe;
+ bool pkgc_flag;
+ igt_display_t *display = &data->display;
+ igt_plane_t *primary;
+ igt_output_t *output;
+
+ for_each_pipe_with_valid_output(display, pipe, output) {
+ igt_output_set_pipe(output, pipe);
+ data->output = output;
+ data->mode = igt_output_get_mode(output);
+ setup_videoplayback(data);
+ igt_require(igt_output_has_prop(output, IGT_CONNECTOR_VRR_CAPABLE));
+ igt_require(igt_output_get_prop(output, IGT_CONNECTOR_VRR_CAPABLE));
+
+ primary = igt_output_get_plane_type(data->output,
+ DRM_PLANE_TYPE_PRIMARY);
+ pre_val = read_pkgc_counter(data->debugfs_root_fd);
+ delay = 1 * (MSECS / data->mode->vrefresh);
+ while (time(NULL) - start < duration) {
+ igt_plane_set_fb(primary, &data->fb_rgb);
+ igt_display_commit(&data->display);
+ usleep(delay);
+
+ igt_plane_set_fb(primary, &data->fb_rgr);
+ igt_display_commit(&data->display);
+ cur_val = read_pkgc_counter(data->debugfs_root_fd);
+ if (cur_val > pre_val) {
+ pkgc_flag = true;
+ continue;
+ }
+ }
+ }
+ cleanup_dc3co_fbs(data);
+ igt_assert_f(pkgc_flag, "PKGC10 is not achieved.\n");
+}
+
static void test_pkgc_state_dpms(data_t *data)
{
unsigned int timeout_sec = 6;
@@ -687,6 +732,15 @@ igt_main
test_dc_state_psr(&data, CHECK_DC6);
}
+ igt_describe("This test validates display engine entry to PKGC10 state "
+ "during extended vblank");
+ igt_subtest("deep-pkgc") {
+ igt_require_f(igt_pm_pc8_plus_residencies_enabled(data.msr_fd),
+ "PC8+ residencies not supported\n");
+ igt_require(intel_display_ver(data.devid) >= 20);
+ test_deep_pkgc_state(&data);
+ }
+
igt_describe("This test validates display engine entry to DC5 state "
"while all connectors's DPMS property set to OFF");
igt_subtest("dc5-dpms") {
--
2.25.1
next reply other threads:[~2024-05-27 10:14 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-27 10:21 Jeevan B [this message]
2024-05-27 13:03 ` [PATCH i-g-t] tests/intel/kms_pm_dc: Add a new test to validate the deep sleep state during extended vblank Modem, Bhanuprakash
-- strict thread matches above, loose matches on Subject: below --
2024-05-30 7:15 Jeevan B
2024-05-28 10:09 Jeevan B
2024-05-28 10:12 ` Modem, Bhanuprakash
2024-05-27 17:39 Jeevan B
2024-05-28 4:40 ` Modem, Bhanuprakash
2024-05-27 4:19 Jeevan B
2024-05-27 5:03 ` Kandpal, Suraj
2024-05-27 10:12 ` B, Jeevan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240527102118.523796-1-jeevan.b@intel.com \
--to=jeevan.b@intel.com \
--cc=bhanuprakash.modem@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=suraj.kandpal@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.