On Wed, Dec 07, 2016 at 04:12:07PM +0200, Ville Syrjälä wrote: >On Wed, Dec 07, 2016 at 12:18:19PM +0000, Brian Starkey wrote: >> The check to reject combinations of multiple rotation angles is overly >> restrictive and has the side-effect of also failing any rotation value >> which consists only of reflections. >> >> Fix this by relaxing the check to ignore values which contain no >> rotation flags. >> >> Fixes: 6e0c7c3358d4 ("drm/atomic: Reject attempts to use multiple rotation >> angles at once") >> Signed-off-by: Brian Starkey <brian.starkey at arm.com> >> --- >> drivers/gpu/drm/drm_atomic.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c >> index 362e3ea..44f4030 100644 >> --- a/drivers/gpu/drm/drm_atomic.c >> +++ b/drivers/gpu/drm/drm_atomic.c >> @@ -846,7 +846,8 @@ int drm_atomic_plane_set_property(struct drm_plane >> *plane, >> } else if (property == config->prop_src_h) { >> state->src_h = val; >> } else if (property == plane->rotation_property) { >> - if (!is_power_of_2(val & DRM_ROTATE_MASK)) >> + if ((val & DRM_ROTATE_MASK) && >> + !is_power_of_2(val & DRM_ROTATE_MASK)) > >NAK. You must always set one and only one rotation bit. >
How do you do (DRM_ROTATE_90 | DRM_REFLECT_X) then? Could you suggest the correct fix? Because right now a commit which sets rotation = "reflect-x" fails on this check Thanks, Brian >> return -EINVAL; >> state->rotation = val; >> } else if (property == plane->zpos_property) { >> -- >> 1.7.9.5 > >-- >Ville Syrjälä >Intel OTC