diff --git a/lib/igt_psr.c b/lib/igt_psr.c index 83ccacdd42b4835181e45f7718dee081209c52ae..32d69feac558fb71ef17a1bff698715216c246ef 100644 --- a/lib/igt_psr.c +++ b/lib/igt_psr.c @@ -210,3 +210,19 @@ bool psr2_wait_su(int debugfs_fd, uint16_t *num_su_blocks) { return igt_wait(psr2_read_last_num_su_blocks_val(debugfs_fd, num_su_blocks), 40, 1); } + +bool psr_enabled(int debugfs_fd, enum psr_mode mode) +{ + char buf[PSR_STATUS_MAX_LEN]; + int ret; + + ret = igt_debugfs_simple_read(debugfs_fd, "i915_edp_psr_status", buf, + sizeof(buf)); + if (ret < 0) + return false; + + if (mode == PSR_MODE_1) + return strstr(buf, "PSR mode: PSR1 enabled"); + else + return strstr(buf, "PSR mode: PSR2 enabled"); +} diff --git a/lib/igt_psr.h b/lib/igt_psr.h index ca3857367dedfa08fb8df298d461538d4c8cb6fd..9885cb118cc40cbed9dc768ea87911fb5029e6e8 100644 --- a/lib/igt_psr.h +++ b/lib/igt_psr.h @@ -42,5 +42,6 @@ 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 psr2_wait_su(int debugfs_fd, uint16_t *num_su_blocks); +bool psr_enabled(int debugfs_fd, enum psr_mode mode); #endif diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c index 02b08189a863a669a6f5e032afd9a777711619f4..2cf357a21c602c3e2058b541c9bbf07af70973bf 100644 --- a/tests/i915/i915_pm_dc.c +++ b/tests/i915/i915_pm_dc.c @@ -84,16 +84,6 @@ static void display_fini(data_t *data) igt_display_fini(&data->display); } -static bool edp_psr2_enabled(data_t *data) -{ - char buf[512]; - - igt_debugfs_simple_read(data->debugfs_fd, "i915_edp_psr_status", - buf, sizeof(buf)); - - return strstr(buf, "PSR mode: PSR2 enabled") != NULL; -} - static void cleanup_dc_psr(data_t *data) { igt_plane_t *primary; @@ -298,8 +288,7 @@ static void setup_dc3co(data_t *data) { data->op_psr_mode = PSR_MODE_2; psr_enable(data->debugfs_fd, data->op_psr_mode); - igt_require_f(edp_psr2_enabled(data), - "PSR2 is not enabled\n"); + igt_require(psr_enabled(data->debugfs_fd, PSR_MODE_2)); } static void test_dc3co_vpb_simulation(data_t *data)