diff options
author | Jeevan B <jeevan.b@intel.com> | 2024-06-25 19:28:53 +0530 |
---|---|---|
committer | Kunal Joshi <kunal1.joshi@intel.com> | 2024-06-25 19:56:56 +0530 |
commit | 88f21e51ae5ad127fe71354b288c750947b20f4e (patch) | |
tree | 09740a5796cfc242e5713fa3f2f5d3d18670ab32 /lib | |
parent | a2600953b16d6628855b89ac40f477b58933b37b (diff) |
lib/igt_psr: Added library functions for early transport
Added helper functions to check sink support for early transport and
check early transport active check.
v2: Add early transport for PR and PSR2.
v3: Fix check strings.
v4: Add description to library function and correct string logic.
Signed-off-by: Jeevan B <jeevan.b@intel.com>
Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/igt_psr.c | 18 | ||||
-rw-r--r-- | lib/igt_psr.h | 3 |
2 files changed, 21 insertions, 0 deletions
diff --git a/lib/igt_psr.c b/lib/igt_psr.c index bc8e0e830..e3e7577eb 100644 --- a/lib/igt_psr.c +++ b/lib/igt_psr.c @@ -53,6 +53,19 @@ bool selective_fetch_check(int debugfs_fd, igt_output_t *output) return strstr(buf, "PSR2 selective fetch: enabled"); } +/* + * Checks if Early Transport is enabled in PSR status by reading the debugfs. + */ +bool early_transport_check(int debugfs_fd) +{ + char buf[PSR_STATUS_MAX_LEN]; + + igt_debugfs_simple_read(debugfs_fd, "i915_edp_psr_status", buf, + sizeof(buf)); + + return strstr(buf, "enabled (Early Transport)"); +} + static bool psr_active_check(int debugfs_fd, enum psr_mode mode, igt_output_t *output) { char debugfs_file[128] = {0}; @@ -269,10 +282,15 @@ bool psr_sink_support(int device, int debugfs_fd, enum psr_mode mode, igt_output strstr(buf, "Sink support: yes [0x04]") || (strstr(line, "PSR = yes") && (strstr(line, "[0x03]") || strstr(line, "[0x04]"))); + case PSR_MODE_2_ET: + return strstr(buf, "Sink support: yes [0x04]") || + (strstr(line, "PSR = yes") && strstr(line, "[0x04]")); case PR_MODE: return strstr(line, "Panel Replay = yes"); case PR_MODE_SEL_FETCH: return strstr(line, "Panel Replay = yes, Panel Replay Selective Update = yes"); + case PR_MODE_SEL_FETCH_ET: + return strstr(line, "Panel Replay Selective Update = yes (Early Transport)"); default: igt_assert_f(false, "Invalid psr mode\n"); return false; diff --git a/lib/igt_psr.h b/lib/igt_psr.h index e8595fd8c..a7ebd0739 100644 --- a/lib/igt_psr.h +++ b/lib/igt_psr.h @@ -35,8 +35,10 @@ enum psr_mode { PSR_MODE_1, PSR_MODE_2, PSR_MODE_2_SEL_FETCH, + PSR_MODE_2_ET, PR_MODE, PR_MODE_SEL_FETCH, + PR_MODE_SEL_FETCH_ET, PSR_DISABLED, }; @@ -47,6 +49,7 @@ enum fbc_mode { bool psr_disabled_check(int debugfs_fd); bool selective_fetch_check(int debugfs_fd, igt_output_t *output); +bool early_transport_check(int debugfs_fd); bool psr_wait_entry(int debugfs_fd, enum psr_mode mode, igt_output_t *output); bool psr_wait_update(int debugfs_fd, enum psr_mode mode, igt_output_t *output); bool psr_long_wait_update(int debugfs_fd, enum psr_mode mode, igt_output_t *output); |