From: Anshuman Gupta <anshuman.gupta@intel.com> To: intel-gfx@lists.freedesktop.org, igt-dev@lists.freedesktop.org Subject: [PATCH i-g-t 1/5] lib/igt_pm: igt lib helper routines to support DC5/6 tests Date: Wed, 13 Mar 2019 23:02:18 +0530 [thread overview] Message-ID: <1552498342-6133-2-git-send-email-anshuman.gupta@intel.com> (raw) In-Reply-To: <1552498342-6133-1-git-send-email-anshuman.gupta@intel.com> From: Jyoti Yadav <jyoti.r.yadav@intel.com> dmc_loaded() will be used by new test i915_pm_dc.c which will validate Display C States. So moving the same to igt_pm library. Introduced igt_disable_runtime_pm() inorder to disable runtime suspend for the function which support dc9. 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 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
WARNING: multiple messages have this Message-ID (diff)
From: Anshuman Gupta <anshuman.gupta@intel.com> To: intel-gfx@lists.freedesktop.org, igt-dev@lists.freedesktop.org Cc: jyoti.r.yadav@intel.com Subject: [igt-dev] [PATCH i-g-t 1/5] lib/igt_pm: igt lib helper routines to support DC5/6 tests Date: Wed, 13 Mar 2019 23:02:18 +0530 [thread overview] Message-ID: <1552498342-6133-2-git-send-email-anshuman.gupta@intel.com> (raw) In-Reply-To: <1552498342-6133-1-git-send-email-anshuman.gupta@intel.com> From: Jyoti Yadav <jyoti.r.yadav@intel.com> dmc_loaded() will be used by new test i915_pm_dc.c which will validate Display C States. So moving the same to igt_pm library. Introduced igt_disable_runtime_pm() inorder to disable runtime suspend for the function which support dc9. 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
next prev parent reply other threads:[~2019-03-13 17:32 UTC|newest] Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-03-13 17:32 [PATCH i-g-t 0/5] DC states igt tests patch series v8 Anshuman Gupta 2019-03-13 17:32 ` [igt-dev] " Anshuman Gupta 2019-03-13 17:32 ` Anshuman Gupta [this message] 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-15 10:52 ` [igt-dev] " Imre Deak 2019-03-13 17:32 ` [PATCH i-g-t 2/5] tests/i915/i915_pm_dc: Added new test to verify Display C States Anshuman Gupta 2019-03-13 17:32 ` [igt-dev] " Anshuman Gupta 2019-03-13 17:32 ` [PATCH i-g-t 3/5] tests/i915/i915_pm_dc: Added test for DC6 during PSR Anshuman Gupta 2019-03-13 17:32 ` [igt-dev] " Anshuman Gupta 2019-03-13 17:32 ` [PATCH i-g-t 4/5] tests/i915/i915_pm_dc: Added test for DC5 during DPMS Anshuman Gupta 2019-03-13 17:32 ` [igt-dev] " Anshuman Gupta 2019-03-13 17:32 ` [PATCH i-g-t 5/5] tests/i915/i915_pm_dc: Added test for DC6 " Anshuman Gupta 2019-03-13 17:32 ` [igt-dev] " Anshuman Gupta 2019-03-13 19:17 ` [igt-dev] ✓ Fi.CI.BAT: success for DC states igt tests patch series (rev5) Patchwork 2019-03-14 2:59 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork -- strict thread matches above, loose matches on Subject: below -- 2019-03-18 12:27 [PATCH i-g-t 0/5] DC states igt tests patch series v9 Anshuman Gupta 2019-03-18 12:27 ` [PATCH i-g-t 1/5] lib/igt_pm: igt lib helper routines to support DC5/6 tests Anshuman Gupta 2019-03-07 17:30 [PATCH i-g-t 0/5] DC states igt tests patch series v7 Anshuman Gupta 2019-03-07 17:30 ` [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=1552498342-6133-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 \ /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: linkBe 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.