From: "José Roberto de Souza" <jose.souza@intel.com>
To: igt-dev@lists.freedesktop.org
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>,
Rodrigo Vivi <rodrigo.vivi@intel.com>
Subject: [igt-dev] [PATCH i-g-t v5 1/4] test/psr: Do not fail tests when kernel set a valid disabled reason
Date: Fri, 25 Jan 2019 17:32:53 -0800 [thread overview]
Message-ID: <20190126013256.19255-1-jose.souza@intel.com> (raw)
If kernel set a reason why PSR was not enabled the test should not
be reported as a error.
The reasons that kernel set are based in the modeset, sink and source
parameters and are not considered a error.
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
---
lib/igt_psr.c | 30 ++++++++++++++++++++++++++++++
lib/igt_psr.h | 1 +
tests/kms_psr.c | 21 ++++++++++++++++++++-
3 files changed, 51 insertions(+), 1 deletion(-)
diff --git a/lib/igt_psr.c b/lib/igt_psr.c
index d726fad5..591b2013 100644
--- a/lib/igt_psr.c
+++ b/lib/igt_psr.c
@@ -178,3 +178,33 @@ bool psr_sink_support(int debugfs_fd, enum psr_mode mode)
*/
return strstr(buf, "Sink support: yes [0x03]");
}
+
+#define DISABLED_REASON_LOOKUP "Disabled reason: "
+
+bool psr_disabled_reason_get(int debugfs_fd, char *reason, int len)
+{
+ char buf[PSR_STATUS_MAX_LEN];
+ char *str;
+ int ret;
+
+ ret = igt_debugfs_simple_read(debugfs_fd, "i915_edp_psr_status", buf,
+ sizeof(buf));
+ if (ret < 0)
+ return false;
+
+ str = strstr(buf, DISABLED_REASON_LOOKUP);
+ if (!str)
+ return false;
+
+ str = &str[strlen(DISABLED_REASON_LOOKUP)];
+
+ for (ret = 0; str[ret] != '\n'; ret++);
+
+ if (ret + 1 > len)
+ return false;
+
+ memcpy(reason, str, ret);
+ reason[ret] = '\0';
+
+ return true;
+}
diff --git a/lib/igt_psr.h b/lib/igt_psr.h
index 7e7017bf..465839d2 100644
--- a/lib/igt_psr.h
+++ b/lib/igt_psr.h
@@ -40,5 +40,6 @@ bool psr_wait_update(int debugfs_fd, enum psr_mode mode);
bool psr_enable(int debugfs_fd, enum psr_mode);
bool psr_disable(int debugfs_fd);
bool psr_sink_support(int debugfs_fd, enum psr_mode);
+bool psr_disabled_reason_get(int debugfs_fd, char *reason, int len);
#endif
diff --git a/tests/kms_psr.c b/tests/kms_psr.c
index 3e16a6bf..e854200e 100644
--- a/tests/kms_psr.c
+++ b/tests/kms_psr.c
@@ -387,11 +387,30 @@ static void setup_test_plane(data_t *data, int test_plane)
static void test_setup(data_t *data)
{
+ bool ret;
+
if (data->op_psr_mode == PSR_MODE_2)
igt_require(data->supports_psr2);
psr_enable_if_enabled(data);
setup_test_plane(data, data->test_plane_id);
- igt_assert(psr_wait_entry_if_enabled(data));
+
+ ret = psr_wait_entry_if_enabled(data);
+ if (!ret) {
+ char reason[128];
+
+ ret = psr_disabled_reason_get(data->debugfs_fd, reason,
+ sizeof(reason));
+
+ /* Check if it is a PSR2 reason while trying to enable PSR1 */
+ if (ret && data->op_psr_mode == PSR_MODE_1 &&
+ strstr(reason, "PSR2"))
+ ret = false;
+
+ if (ret)
+ igt_skip("Skipping test because %s\n", reason);
+ else
+ igt_assert_f(ret, "PSR not enabled\n");
+ }
}
static void dpms_off_on(data_t *data)
--
2.20.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
next reply other threads:[~2019-01-26 1:32 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-26 1:32 José Roberto de Souza [this message]
2019-01-26 1:32 ` [igt-dev] [PATCH i-g-t v5 2/4] tests/intel-ci: Add basic PSR2 tests to fast feedback test list José Roberto de Souza
2019-01-26 1:32 ` [igt-dev] [PATCH i-g-t v5 3/4] test: Add PSR2 selective update tests José Roberto de Souza
2019-01-29 23:52 ` Pandiyan, Dhinakaran
2019-01-30 1:34 ` Souza, Jose
2019-01-30 20:58 ` Dhinakaran Pandiyan
2019-01-26 1:32 ` [igt-dev] [PATCH i-g-t v5 4/4] DO NOT MERGE: Check result of kms_psr2_su tests José Roberto de Souza
2019-01-26 2:25 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v5,1/4] test/psr: Do not fail tests when kernel set a valid disabled reason Patchwork
2019-01-26 5:59 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
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=20190126013256.19255-1-jose.souza@intel.com \
--to=jose.souza@intel.com \
--cc=dhinakaran.pandiyan@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=rodrigo.vivi@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