commit c81f3cc313e2fd1e0fea61664646aaee4d4c9e06
parent 9e97a1785bda7efba0cfd6f172629eab38b8b09b
Author: Michael Forney <mforney@mforney.org>
Date: Sun, 1 May 2016 14:37:49 -0700
Pick the first mode if none is marked as preferred
NVIDIA's DRM driver does not seem to use DRM_MODE_TYPE_PREFERRED.
Diffstat:
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/libswc/output.c b/libswc/output.c
@@ -72,6 +72,7 @@ output_new(drmModeConnectorPtr connector)
output->physical_width = connector->mmWidth;
output->physical_height = connector->mmHeight;
+ output->preferred_mode = NULL;
wl_list_init(&output->resources);
wl_array_init(&output->modes);
@@ -80,8 +81,10 @@ output_new(drmModeConnectorPtr connector)
output->connector = connector->connector_id;
- modes = wl_array_add(&output->modes, connector->count_modes * sizeof *modes);
+ if (connector->count_modes == 0)
+ goto error2;
+ modes = wl_array_add(&output->modes, connector->count_modes * sizeof *modes);
if (!modes)
goto error2;
@@ -92,6 +95,9 @@ output_new(drmModeConnectorPtr connector)
output->preferred_mode = &modes[i];
}
+ if (!output->preferred_mode)
+ output->preferred_mode = &modes[0];
+
return output;
error2: