16.06.2020 00:47, Emil Velikov пишет:
Hi all,
Perhaps a silly question:
On Mon, 15 Jun 2020 at 08:28, Dmitry Osipenko digetx@gmail.com wrote:
Combining horizontal and vertical reflections gives us 180 degrees of rotation.
Signed-off-by: Dmitry Osipenko digetx@gmail.com
drivers/gpu/drm/tegra/dc.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c index f31bca27cde4..ddd9b88f8fce 100644 --- a/drivers/gpu/drm/tegra/dc.c +++ b/drivers/gpu/drm/tegra/dc.c
if (rotation & DRM_MODE_ROTATE_180) {
plane_state->reflect_x = !plane_state->reflect_x;
plane_state->reflect_y = !plane_state->reflect_y;
}
As mentioned by Ville the above is already handled by drm_rotation_simplify() ... although it makes me wonder:
err = drm_plane_create_rotation_property(&plane->base, DRM_MODE_ROTATE_0, DRM_MODE_ROTATE_0 |
DRM_MODE_ROTATE_180 | DRM_MODE_REFLECT_X | DRM_MODE_REFLECT_Y);
Would it make sense for drm_plane_create_rotation_property() itself, to add DRM_MODE_ROTATE_180, when both reflections are supported?
Hello Emil,
That's a good point! All DRM_MODE_ROTATE_180 should be removed because Tegra can't do 180° + reflected-x. The DRM core takes care of 180° rotation when both x/y reflections are supported.