drm/modes: Make sure to parse valid rotation value from cmdline
A rotation value should have exactly one rotation angle. At the moment there is no validation for this when parsing video= parameters from the command line. This causes problems later on when we try to combine the command line rotation with the panel orientation. To make sure that we generate a valid rotation value: - Set DRM_MODE_ROTATE_0 by default (if no rotate= option is set) - Validate that there is exactly one rotation angle set (i.e. specifying the rotate= option multiple times is invalid) Signed-off-by: Stephan Gerhold <stephan@gerhold.net> Signed-off-by: Maxime Ripard <maxime@cerno.tech> Link: https://patchwork.freedesktop.org/patch/msgid/20200117153429.54700-2-stephan@gerhold.net
This commit is contained in:

committed by
Maxime Ripard

parent
b50f4f940b
commit
e6980a7271
@@ -1698,6 +1698,13 @@ static int drm_mode_parse_cmdline_options(const char *str,
|
||||
if (rotation && freestanding)
|
||||
return -EINVAL;
|
||||
|
||||
if (!(rotation & DRM_MODE_ROTATE_MASK))
|
||||
rotation |= DRM_MODE_ROTATE_0;
|
||||
|
||||
/* Make sure there is exactly one rotation defined */
|
||||
if (!is_power_of_2(rotation & DRM_MODE_ROTATE_MASK))
|
||||
return -EINVAL;
|
||||
|
||||
mode->rotation_reflection = rotation;
|
||||
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user