Commit d0c95aba authored by Mark Yacoub's avatar Mark Yacoub Committed by Commit Bot

Set ROTATE_0 bit when setting drm reflection values

- The kernel expects a rotation bit set even when a flip is required.
Set ROTATE_0 bit as well when flipping horizontally or vertically.

- Remove old ROTATE defines and use values from libdrm.

BUG=1015433
TEST=Krane gets overlay

Change-Id: Ia473bc3dee915c0b0fe5f13d8333738d7a14b7ef
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1894156
Commit-Queue: Mark Yacoub <markyacoub@google.com>
Reviewed-by: default avatarDaniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#712740}
parent 661a9631
...@@ -10,32 +10,21 @@ ...@@ -10,32 +10,21 @@
namespace ui { namespace ui {
namespace { namespace {
// TODO(dcastagna): Remove the following defines once they're in libdrm headers.
#if !defined(DRM_ROTATE_0)
#define BIT(n) (1 << (n))
#define DRM_ROTATE_0 BIT(0)
#define DRM_ROTATE_90 BIT(1)
#define DRM_ROTATE_180 BIT(2)
#define DRM_ROTATE_270 BIT(3)
#define DRM_REFLECT_X BIT(4)
#define DRM_REFLECT_Y BIT(5)
#endif
uint32_t OverlayTransformToDrmRotationPropertyValue( uint32_t OverlayTransformToDrmRotationPropertyValue(
gfx::OverlayTransform transform) { gfx::OverlayTransform transform) {
switch (transform) { switch (transform) {
case gfx::OVERLAY_TRANSFORM_NONE: case gfx::OVERLAY_TRANSFORM_NONE:
return DRM_ROTATE_0; return DRM_MODE_ROTATE_0;
case gfx::OVERLAY_TRANSFORM_FLIP_HORIZONTAL: case gfx::OVERLAY_TRANSFORM_FLIP_HORIZONTAL:
return DRM_REFLECT_X; return DRM_MODE_REFLECT_X | DRM_MODE_ROTATE_0;
case gfx::OVERLAY_TRANSFORM_FLIP_VERTICAL: case gfx::OVERLAY_TRANSFORM_FLIP_VERTICAL:
return DRM_REFLECT_Y; return DRM_MODE_REFLECT_Y | DRM_MODE_ROTATE_0;
case gfx::OVERLAY_TRANSFORM_ROTATE_90: case gfx::OVERLAY_TRANSFORM_ROTATE_90:
return DRM_ROTATE_90; return DRM_MODE_ROTATE_90;
case gfx::OVERLAY_TRANSFORM_ROTATE_180: case gfx::OVERLAY_TRANSFORM_ROTATE_180:
return DRM_ROTATE_180; return DRM_MODE_ROTATE_180;
case gfx::OVERLAY_TRANSFORM_ROTATE_270: case gfx::OVERLAY_TRANSFORM_ROTATE_270:
return DRM_ROTATE_270; return DRM_MODE_ROTATE_270;
default: default:
NOTREACHED(); NOTREACHED();
} }
...@@ -60,7 +49,7 @@ bool IsRotationTransformSupported(gfx::OverlayTransform transform) { ...@@ -60,7 +49,7 @@ bool IsRotationTransformSupported(gfx::OverlayTransform transform) {
HardwareDisplayPlaneAtomic::HardwareDisplayPlaneAtomic(uint32_t id) HardwareDisplayPlaneAtomic::HardwareDisplayPlaneAtomic(uint32_t id)
: HardwareDisplayPlane(id) {} : HardwareDisplayPlane(id) {}
HardwareDisplayPlaneAtomic::~HardwareDisplayPlaneAtomic() {} HardwareDisplayPlaneAtomic::~HardwareDisplayPlaneAtomic() = default;
bool HardwareDisplayPlaneAtomic::Initialize(DrmDevice* drm) { bool HardwareDisplayPlaneAtomic::Initialize(DrmDevice* drm) {
if (!HardwareDisplayPlane::Initialize(drm)) if (!HardwareDisplayPlane::Initialize(drm))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment