[hwc] drm_hwcomposer: correct handling of DRM_MODE_ROTATE_0
diff mbox

Message ID 20171101163710.13779-1-robh@kernel.org
State New
Headers show

Commit Message

Rob Herring Nov. 1, 2017, 4:37 p.m. UTC
If the rotation property is supported for a plane, then the rotation
value must be non-zero. For the case of 0 degree rotation,
DRM_MODE_ROTATE_0 needs to be set.

Signed-off-by: Rob Herring <robh@kernel.org>
---
 drmdisplaycompositor.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Rob Herring Nov. 1, 2017, 5:50 p.m. UTC | #1
On Wed, Nov 1, 2017 at 11:37 AM, Rob Herring <robh@kernel.org> wrote:
> If the rotation property is supported for a plane, then the rotation
> value must be non-zero. For the case of 0 degree rotation,
> DRM_MODE_ROTATE_0 needs to be set.
>
> Signed-off-by: Rob Herring <robh@kernel.org>
> ---
>  drmdisplaycompositor.cpp | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)

Pushed to master.
Robert Foss Nov. 1, 2017, 6:02 p.m. UTC | #2
Hi Rob,

On Wed, 2017-11-01 at 12:50 -0500, Rob Herring wrote:
> On Wed, Nov 1, 2017 at 11:37 AM, Rob Herring <robh@kernel.org> wrote:
> > If the rotation property is supported for a plane, then the
> > rotation
> > value must be non-zero. For the case of 0 degree rotation,
> > DRM_MODE_ROTATE_0 needs to be set.
> > 
> > Signed-off-by: Rob Herring <robh@kernel.org>
> > ---
> >  drmdisplaycompositor.cpp | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> Pushed to master.

Thanks :)

Patch
diff mbox

diff --git a/drmdisplaycompositor.cpp b/drmdisplaycompositor.cpp
index 8225726df5cd..dceb78d452c4 100644
--- a/drmdisplaycompositor.cpp
+++ b/drmdisplaycompositor.cpp
@@ -581,6 +581,8 @@  int DrmDisplayCompositor::CommitFrame(DrmDisplayComposition *display_comp,
         rotation |= DRM_MODE_ROTATE_180;
       else if (layer.transform & DrmHwcTransform::kRotate270)
         rotation |= DRM_MODE_ROTATE_270;
+      else
+        rotation |= DRM_MODE_ROTATE_0;
 
       if (fence_fd < 0) {
         int prop_id = plane->in_fence_fd_property().id();
@@ -610,7 +612,7 @@  int DrmDisplayCompositor::CommitFrame(DrmDisplayComposition *display_comp,
     }
 
     // TODO: Once we have atomic test, this should fall back to GL
-    if (rotation && plane->rotation_property().id() == 0) {
+    if (rotation != DRM_MODE_ROTATE_0 && plane->rotation_property().id() == 0) {
       ALOGE("Rotation is not supported on plane %d", plane->id());
       ret = -EINVAL;
       break;