summaryrefslogtreecommitdiff
path: root/lib/igt_kms.c
diff options
context:
space:
mode:
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>2018-04-06 12:59:46 +0200
committerMaarten Lankhorst <maarten.lankhorst@linux.intel.com>2018-04-11 09:45:37 +0200
commit2c3e1ca6496de3b0377a43f4e8060cebd2c9920b (patch)
tree9b27919de95a1c36510e770153f79fc834010c30 /lib/igt_kms.c
parente5829165c2ef96140c222429c0f174fb72c4324b (diff)
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 <maarten.lankhorst@linux.intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105798 Reviewed-by: Marta Lofstedt <marta.lofstedt@intel.com>
Diffstat (limited to 'lib/igt_kms.c')
-rw-r--r--lib/igt_kms.c13
1 files changed, 8 insertions, 5 deletions
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);
}