Commit cda55372 authored by Boris Brezillon's avatar Boris Brezillon Committed by Thierry Reding

drm/panel: simple: Set appropriate mode type

All modes exposed by simple panels should be tagged as driver defined
modes. Moreover, if a panel supports only one mode, this mode is
obviously the preferred one.

Doing this also fix a problem occurring when a 'video=' parameter is
passed on the kernel command line. In some cases the user provided mode
will be preferred over the simple panel ones, which might result in
unpredictable behavior.
Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
Reviewed-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
Tested-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
[treding@nvidia.com: reshuffle some code for consistency]
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent cf5c9e6d
...@@ -117,6 +117,12 @@ static int panel_simple_get_fixed_modes(struct panel_simple *panel) ...@@ -117,6 +117,12 @@ static int panel_simple_get_fixed_modes(struct panel_simple *panel)
} }
drm_display_mode_from_videomode(&vm, mode); drm_display_mode_from_videomode(&vm, mode);
mode->type |= DRM_MODE_TYPE_DRIVER;
if (panel->desc->num_modes == 1)
mode->type |= DRM_MODE_TYPE_PREFERRED;
drm_mode_set_name(mode); drm_mode_set_name(mode);
drm_mode_probed_add(connector, mode); drm_mode_probed_add(connector, mode);
...@@ -133,6 +139,11 @@ static int panel_simple_get_fixed_modes(struct panel_simple *panel) ...@@ -133,6 +139,11 @@ static int panel_simple_get_fixed_modes(struct panel_simple *panel)
continue; continue;
} }
mode->type |= DRM_MODE_TYPE_DRIVER;
if (panel->desc->num_modes == 1)
mode->type |= DRM_MODE_TYPE_PREFERRED;
drm_mode_set_name(mode); drm_mode_set_name(mode);
drm_mode_probed_add(connector, mode); drm_mode_probed_add(connector, mode);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment