From: Boris Brezillon Date: Fri, 15 Apr 2016 16:23:33 +0000 (+0200) Subject: drm/panel: simple: Set appropriate mode type X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=cda553725c92b9f908f6f69e9bc05de81384d817;p=linux-beck.git 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: Boris Brezillon Reviewed-by: Nicolas Ferre Tested-by: Nicolas Ferre [treding@nvidia.com: reshuffle some code for consistency] Signed-off-by: Thierry Reding --- diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 847abee5ea36..a6d8a5dda424 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -117,6 +117,12 @@ static int panel_simple_get_fixed_modes(struct panel_simple *panel) } 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_probed_add(connector, mode); @@ -133,6 +139,11 @@ static int panel_simple_get_fixed_modes(struct panel_simple *panel) 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_probed_add(connector, mode);