[Intel-gfx] [PATCH IGT 09/11] lib: Add igt_psr_valid_connector() and change tests to use it.
Jim Bride
jim.bride at linux.intel.com
Tue Jul 11 22:48:34 UTC 2017
Signed-off-by: Jim Bride <jim.bride at linux.intel.com>
---
lib/igt_psr.c | 11 +++++++++++
lib/igt_psr.h | 1 +
tests/kms_frontbuffer_tracking.c | 12 +++++++-----
tests/kms_psr_sink_crc.c | 2 +-
4 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/lib/igt_psr.c b/lib/igt_psr.c
index 8dda659..178842e 100644
--- a/lib/igt_psr.c
+++ b/lib/igt_psr.c
@@ -127,3 +127,14 @@ void igt_psr_print_status(int fd)
igt_debugfs_read(fd, "i915_edp_psr_status", buf);
igt_info("PSR status:\n%s\n", buf);
}
+
+/**
+ * igt_psr_valid_connector:
+ * @connector: a drmModeConnector pointer to check
+ *
+ * Returns true if connector is an eDP connector.
+ */
+bool igt_psr_valid_connector(drmModeConnectorPtr connector)
+{
+ return (connector->connector_type == DRM_MODE_CONNECTOR_eDP);
+}
diff --git a/lib/igt_psr.h b/lib/igt_psr.h
index d6db297..08bccef 100644
--- a/lib/igt_psr.h
+++ b/lib/igt_psr.h
@@ -33,5 +33,6 @@ bool igt_psr_possible(int fd);
bool igt_psr_active(int fd);
bool igt_psr_await_status(int fd, bool active);
void igt_psr_print_status(int fd);
+bool igt_psr_valid_connector(drmModeConnectorPtr connector);
#endif /* IGT_PSR_H */
diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index ee611b9..6f52c49 100644
--- a/tests/kms_frontbuffer_tracking.c
+++ b/tests/kms_frontbuffer_tracking.c
@@ -424,11 +424,12 @@ static void init_mode_params(struct modeset_params *params, uint32_t crtc_id,
static bool connector_get_mode(drmModeConnectorPtr c, drmModeModeInfoPtr *mode)
{
*mode = NULL;
+ bool valid = igt_psr_valid_connector(c);
if (c->connection != DRM_MODE_CONNECTED || !c->count_modes)
return false;
- if (c->connector_type == DRM_MODE_CONNECTOR_eDP && opt.no_edp)
+ if (valid && opt.no_edp)
return false;
if (opt.small_modes)
@@ -461,7 +462,7 @@ static bool find_connector(bool edp_only, bool pipe_a, uint32_t forbidden_id,
for (i = 0; i < drm.res->count_connectors; i++) {
c = drm.connectors[i];
- if (edp_only && c->connector_type != DRM_MODE_CONNECTOR_eDP)
+ if (edp_only && !igt_psr_valid_connector(c))
continue;
if (pipe_a && !connector_supports_pipe_a(c))
continue;
@@ -1395,7 +1396,7 @@ static void setup_sink_crc(void)
drmModeConnectorPtr c;
c = get_connector(prim_mode_params.connector_id);
- if (c->connector_type != DRM_MODE_CONNECTOR_eDP) {
+ if (!igt_psr_valid_connector(c)) {
igt_info("Sink CRC not supported: primary screen is not eDP\n");
sink_crc.supported = false;
return;
@@ -1531,8 +1532,9 @@ static bool psr_sink_has_support(void)
static void setup_psr(void)
{
- if (get_connector(prim_mode_params.connector_id)->connector_type !=
- DRM_MODE_CONNECTOR_eDP) {
+ drmModeConnectorPtr c = get_connector(prim_mode_params.connector_id);
+
+ if (!igt_psr_valid_connector(c)) {
igt_info("Can't test PSR: no usable eDP screen.\n");
return;
}
diff --git a/tests/kms_psr_sink_crc.c b/tests/kms_psr_sink_crc.c
index c9f7993..da8c173 100644
--- a/tests/kms_psr_sink_crc.c
+++ b/tests/kms_psr_sink_crc.c
@@ -103,7 +103,7 @@ static void setup_output(data_t *data)
for_each_pipe_with_valid_output(display, pipe, output) {
drmModeConnectorPtr c = output->config.connector;
- if (c->connector_type != DRM_MODE_CONNECTOR_eDP)
+ if (!igt_psr_valid_connector(c))
continue;
igt_output_set_pipe(output, pipe);
--
2.7.4
More information about the Intel-gfx
mailing list