From 2c3e1ca6496de3b0377a43f4e8060cebd2c9920b Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst Date: Fri, 6 Apr 2018 12:59:46 +0200 Subject: lib/igt_kms: Handle outputs with no modes better Pretend that outputs without modes are disabled, and try reprobing if no modes are initially detected, just in case that the reprobe will find modes. Signed-off-by: Maarten Lankhorst Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105798 Reviewed-by: Marta Lofstedt --- lib/igt_kms.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'lib/igt_kms.c') diff --git a/lib/igt_kms.c b/lib/igt_kms.c index 19d650a8..4b25f836 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -1033,9 +1033,10 @@ static bool _kmstest_connector_config(int drm_fd, uint32_t connector_id, goto err2; if (!connector->count_modes) { - igt_warn("connector %d/%s-%d has no modes\n", connector_id, - kmstest_connector_type_str(connector->connector_type), - connector->connector_type_id); + if (probe) + igt_warn("connector %d/%s-%d has no modes\n", connector_id, + kmstest_connector_type_str(connector->connector_type), + connector->connector_type_id); goto err2; } @@ -1950,6 +1951,7 @@ void igt_display_init(igt_display_t *display, int drm_fd) for (i = 0; i < display->n_outputs; i++) { igt_output_t *output = &display->outputs[i]; + drmModeConnector *connector; /* * We don't assign each output a pipe unless @@ -1961,8 +1963,9 @@ void igt_display_init(igt_display_t *display, int drm_fd) igt_output_refresh(output); - if (output->config.connector && - output->config.connector->connection == DRM_MODE_UNKNOWNCONNECTION) { + connector = output->config.connector; + if (connector && (!connector->count_modes || + connector->connection == DRM_MODE_UNKNOWNCONNECTION)) { output->force_reprobe = true; igt_output_refresh(output); } -- cgit v1.2.3