[igt-dev] [PATCH i-g-t] lib/igt_kms: Handle outputs with no modes better
Chris Wilson
chris at chris-wilson.co.uk
Fri Apr 27 21:09:29 UTC 2018
Quoting Maarten Lankhorst (2018-04-06 12:06:34)
> 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 at linux.intel.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105798
> ---
> lib/igt_kms.c | 13 ++++++++-----
> lib/igt_kms.h | 3 ++-
> 2 files changed, 10 insertions(+), 6 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 19d650a8dcf8..4b25f8361a42 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;
Something else to refactor into force_reprobe would be a bad
LINK_STATUS.
-Chris
More information about the igt-dev
mailing list