public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Anshuman Gupta <anshuman.gupta@intel.com>
To: intel-gfx@lists.freedesktop.org, igt-dev@lists.freedesktop.org
Cc: jyoti.r.yadav@intel.com, anshuman.gupta@intel.com
Subject: [igt-dev] [PATCH i-g-t 1/5] lib/igt_pm: igt lib helper routines to support DC5/6 tests
Date: Thu,  7 Mar 2019 23:00:13 +0530	[thread overview]
Message-ID: <1551979817-26123-2-git-send-email-anshuman.gupta@intel.com> (raw)
In-Reply-To: <1551979817-26123-1-git-send-email-anshuman.gupta@intel.com>

From: Jyoti Yadav <jyoti.r.yadav@intel.com>

It will be used by new test pm_dc.c which will validate Display C States.
So moving the same to igt_pm library.

v2: Simplify the comment section.
v3: Remove . from the subject line.
v4: Rebased, resolve conflicts in pm_rpm.c
    Included patch set version change log.
v5: Listing actual change in patch set changelog to make review easier.
v6: igt's lib added support for disabling runtime suspend, change in commit log.
    rebased due to test name pm_rpm changed to i915_pm_rpm.

Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
 lib/igt_pm.c             | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 lib/igt_pm.h             |  2 ++
 tests/i915/i915_pm_rpm.c | 17 +----------------
 3 files changed, 50 insertions(+), 16 deletions(-)

diff --git a/lib/igt_pm.c b/lib/igt_pm.c
index 4902723..0ed566f 100644
--- a/lib/igt_pm.c
+++ b/lib/igt_pm.c
@@ -38,6 +38,7 @@
 #include "drmtest.h"
 #include "igt_pm.h"
 #include "igt_aux.h"
+#include "igt_sysfs.h"
 
 /**
  * SECTION:igt_pm
@@ -486,6 +487,7 @@ void igt_restore_runtime_pm(void)
 	igt_pm_audio_restore_runtime_pm();
 }
 
+
 static void __igt_pm_runtime_exit_handler(int sig)
 {
 	__igt_restore_runtime_pm();
@@ -577,6 +579,24 @@ bool igt_setup_runtime_pm(void)
 	return true;
 }
 
+bool igt_disable_runtime_pm(void)
+{
+	int fd;
+	ssize_t size;
+	char buf[6];
+
+	/* We know we support runtime PM, let's try to disable it now. */
+	fd = open(POWER_DIR "/control", O_RDWR);
+	igt_assert_f(fd >= 0, "Can't open " POWER_DIR "/control\n");
+	size = write(fd, "on\n", 3);
+	igt_assert(size == 3);
+	lseek(fd, 0, SEEK_SET);
+	size = read(fd, buf, ARRAY_SIZE(buf));
+	igt_assert(size == 3);
+	igt_assert(strncmp(buf, "on\n", 3) == 0);
+	close(fd);
+	return true;
+}
 /**
  * igt_get_runtime_pm_status:
  *
@@ -620,3 +640,30 @@ bool igt_wait_for_pm_status(enum igt_runtime_pm_status status)
 {
 	return igt_wait(igt_get_runtime_pm_status() == status, 10000, 100);
 }
+
+/**
+ * dmc_loaded:
+ * @debugfs: fd to the debugfs dir.
+
+ * Check whether DMC FW is loaded or not. DMC FW is require for few Display C
+ * states like DC5 and DC6. FW does the Context Save and Restore during Display
+ * C States entry and exit.
+ *
+ * Returns:
+ * True if DMC FW is loaded otherwise false.
+ */
+bool igt_pm_dmc_loaded(int debugfs)
+{
+	igt_require(debugfs != -1);
+	char buf[15];
+	int len;
+
+	len = igt_sysfs_read(debugfs, "i915_dmc_info", buf, sizeof(buf) - 1);
+	if (len < 0)
+		return true; /* no CSR support, no DMC requirement */
+
+	buf[len] = '\0';
+
+	igt_info("DMC: %s\n", buf);
+	return strstr(buf, "fw loaded: yes");
+}
diff --git a/lib/igt_pm.h b/lib/igt_pm.h
index 10cc679..6c4617a 100644
--- a/lib/igt_pm.h
+++ b/lib/igt_pm.h
@@ -47,8 +47,10 @@ enum igt_runtime_pm_status {
 };
 
 bool igt_setup_runtime_pm(void);
+bool igt_disable_runtime_pm(void);
 void igt_restore_runtime_pm(void);
 enum igt_runtime_pm_status igt_get_runtime_pm_status(void);
 bool igt_wait_for_pm_status(enum igt_runtime_pm_status status);
+bool igt_pm_dmc_loaded(int debugfs);
 
 #endif /* IGT_PM_H */
diff --git a/tests/i915/i915_pm_rpm.c b/tests/i915/i915_pm_rpm.c
index be296f5..2d7cb5e 100644
--- a/tests/i915/i915_pm_rpm.c
+++ b/tests/i915/i915_pm_rpm.c
@@ -710,21 +710,6 @@ static void setup_pc8(void)
 	has_pc8 = true;
 }
 
-static bool dmc_loaded(void)
-{
-	char buf[15];
-	int len;
-
-	len = igt_sysfs_read(debugfs, "i915_dmc_info", buf, sizeof(buf) - 1);
-	if (len < 0)
-	    return true; /* no CSR support, no DMC requirement */
-
-	buf[len] = '\0';
-
-	igt_info("DMC: %s\n", buf);
-	return strstr(buf, "fw loaded: yes");
-}
-
 static void dump_file(int dir, const char *filename)
 {
 	char *contents;
@@ -761,7 +746,7 @@ static bool setup_environment(void)
 	igt_info("Runtime PM support: %d\n", has_runtime_pm);
 	igt_info("PC8 residency support: %d\n", has_pc8);
 	igt_require(has_runtime_pm);
-	igt_require(dmc_loaded());
+	igt_require(igt_pm_dmc_loaded(debugfs));
 
 out:
 	disable_all_screens(&ms_data);
-- 
2.7.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  reply	other threads:[~2019-03-07 17:30 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-07 17:30 [igt-dev] [PATCH i-g-t 0/5] DC states igt tests patch series v7 Anshuman Gupta
2019-03-07 17:30 ` Anshuman Gupta [this message]
2019-03-07 17:30 ` [igt-dev] [PATCH i-g-t 2/5] tests/pm_dc: Added new test to verify Display C States Anshuman Gupta
2019-03-07 17:30 ` [igt-dev] [PATCH i-g-t 3/5] tests/pm_dc: Added test for DC6 during PSR Anshuman Gupta
2019-03-07 17:30 ` [igt-dev] [PATCH i-g-t 4/5] tests/pm_dc: Added test for DC5 during DPMS Anshuman Gupta
2019-03-07 17:30 ` [Intel-gfx] [PATCH i-g-t 5/5] tests/pm_dc: Added test for DC6 " Anshuman Gupta
2019-03-07 18:25 ` [igt-dev] ✓ Fi.CI.BAT: success for DC states igt tests patch series (rev4) Patchwork
2019-03-07 19:18 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2019-03-13 17:32 [igt-dev] [PATCH i-g-t 0/5] DC states igt tests patch series v8 Anshuman Gupta
2019-03-13 17:32 ` [igt-dev] [PATCH i-g-t 1/5] lib/igt_pm: igt lib helper routines to support DC5/6 tests Anshuman Gupta
2019-03-15 10:52   ` Imre Deak
2019-03-18 12:27 [igt-dev] [PATCH i-g-t 0/5] DC states igt tests patch series v9 Anshuman Gupta
2019-03-18 12:27 ` [igt-dev] [PATCH i-g-t 1/5] lib/igt_pm: igt lib helper routines to support DC5/6 tests Anshuman Gupta

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=1551979817-26123-2-git-send-email-anshuman.gupta@intel.com \
    --to=anshuman.gupta@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jyoti.r.yadav@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox