@@ -327,28 +327,6 @@ drmModeModeInfo std_1024_mode = {
.name = "Custom 1024x768",
};
-static drmModeModeInfoPtr get_connector_smallest_mode(drmModeConnectorPtr c)
-{
- int i;
- drmModeModeInfoPtr smallest = NULL;
-
- for (i = 0; i < c->count_modes; i++) {
- drmModeModeInfoPtr mode = &c->modes[i];
-
- if (!smallest)
- smallest = mode;
-
- if (mode->hdisplay * mode->vdisplay <
- smallest->hdisplay * smallest->vdisplay)
- smallest = mode;
- }
-
- if (c->connector_type == DRM_MODE_CONNECTOR_eDP)
- smallest = &std_1024_mode;
-
- return smallest;
-}
-
static drmModeConnectorPtr get_connector(uint32_t id)
{
int i;
@@ -421,30 +399,6 @@ static void init_mode_params(struct modeset_params *params, uint32_t crtc_id,
params->sprite.h = 64;
}
-static bool connector_get_mode(drmModeConnectorPtr c, drmModeModeInfoPtr *mode)
-{
- *mode = NULL;
-
- if (c->connection != DRM_MODE_CONNECTED || !c->count_modes)
- return false;
-
- if (c->connector_type == DRM_MODE_CONNECTOR_eDP && opt.no_edp)
- return false;
-
- if (opt.small_modes)
- *mode = get_connector_smallest_mode(c);
- else
- *mode = &c->modes[0];
-
- /* On HSW the CRC WA is so awful that it makes you think everything is
- * bugged. */
- if (IS_HASWELL(intel_get_drm_devid(drm.fd)) &&
- c->connector_type == DRM_MODE_CONNECTOR_eDP)
- *mode = &std_1024_mode;
-
- return true;
-}
-
static bool connector_supports_pipe_a(drmModeConnectorPtr connector)
{
int i;
@@ -473,7 +427,7 @@ static bool find_connector(bool edp_only, bool pipe_a, uint32_t forbidden_id,
continue;
if (c->connector_id == forbidden_id)
continue;
- if (!connector_get_mode(c, &mode))
+ if (!igt_psr_find_good_mode(c, &mode))
continue;
*ret_connector = c;
@@ -804,23 +758,6 @@ static void fbc_print_status(void)
igt_info("FBC status:\n%s\n", buf);
}
-static bool psr_is_enabled(void)
-{
- char buf[256];
-
- debugfs_read("i915_edp_psr_status", buf);
- return strstr(buf, "\nActive: yes\n") &&
- strstr(buf, "\nHW Enabled & Active bit: yes\n");
-}
-
-static void psr_print_status(void)
-{
- char buf[256];
-
- debugfs_read("i915_edp_psr_status", buf);
- igt_info("PSR status:\n%s\n", buf);
-}
-
static struct timespec fbc_get_last_action(void)
{
struct timespec ret = { 0, 0 };
@@ -926,15 +863,8 @@ static bool fbc_wait_until_enabled(void)
return igt_wait(fbc_is_enabled(), 2000, 1);
}
-static bool psr_wait_until_enabled(void)
-{
- return igt_wait(psr_is_enabled(), 5000, 1);
-}
-
#define fbc_enable() igt_set_module_param_int("enable_fbc", 1)
#define fbc_disable() igt_set_module_param_int("enable_fbc", 0)
-#define psr_enable() igt_set_module_param_int("enable_psr", 1)
-#define psr_disable() igt_set_module_param_int("enable_psr", 0)
static void get_sink_crc(sink_crc_t *crc, bool mandatory)
{
@@ -1180,7 +1110,7 @@ static void disable_features(const struct test_mode *t)
return;
fbc_disable();
- psr_disable();
+ igt_psr_disable();
}
static void *busy_thread_func(void *data)
@@ -1547,14 +1477,6 @@ static void teardown_fbc(void)
{
}
-static bool psr_sink_has_support(void)
-{
- char buf[256];
-
- debugfs_read("i915_edp_psr_status", buf);
- return strstr(buf, "Sink_Support: yes\n");
-}
-
static void setup_psr(void)
{
if (get_connector(prim_mode_params.connector_id)->connector_type !=
@@ -1563,7 +1485,7 @@ static void setup_psr(void)
return;
}
- if (!psr_sink_has_support()) {
+ if (!igt_psr_sink_support(drm.fd)) {
igt_info("Can't test PSR: not supported by sink.\n");
return;
}
@@ -1717,12 +1639,15 @@ static int adjust_assertion_flags(const struct test_mode *t, int flags)
} \
\
if (flags_ & ASSERT_PSR_ENABLED) { \
- if (!psr_wait_until_enabled()) { \
- psr_print_status(); \
+ if (!igt_psr_await_status(drm.fd, true)) { \
+ igt_psr_print_status(drm.fd); \
igt_assert_f(false, "PSR disabled\n"); \
} \
} else if (flags_ & ASSERT_PSR_DISABLED) { \
- igt_assert(!psr_wait_until_enabled()); \
+ if (!igt_psr_await_status(drm.fd, false)) { \
+ igt_psr_print_status(drm.fd); \
+ igt_assert_f(false, "PSR enabled\n"); \
+ } \
} \
} while (0)
@@ -1822,7 +1747,7 @@ static void enable_features_for_test(const struct test_mode *t)
if (t->feature & FEATURE_FBC)
fbc_enable();
if (t->feature & FEATURE_PSR)
- psr_enable();
+ igt_psr_enable();
}
static void check_test_requirements(const struct test_mode *t)
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Cc: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Jim Bride <jim.bride@linux.intel.com> --- tests/kms_frontbuffer_tracking.c | 95 +++++----------------------------------- 1 file changed, 10 insertions(+), 85 deletions(-)