[hwc] drm_hwcomposer: correct handling of DRM_MODE_ROTATE_0

Message ID 20171101163710.13779-1-robh@kernel.org
State New
Headers show
Series
  • [hwc] drm_hwcomposer: correct handling of DRM_MODE_ROTATE_0
Related show

Commit Message

Rob Herring Nov. 1, 2017, 4:37 p.m.
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. | #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. | #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 --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;