16.06.2020 14:25, Dmitry Osipenko пишет: > 16.06.2020 00:47, Emil Velikov пишет: >> Hi all, >> >> Perhaps a silly question: >> >> On Mon, 15 Jun 2020 at 08:28, Dmitry Osipenko <dig...@gmail.com> wrote: >>> >>> Combining horizontal and vertical reflections gives us 180 degrees of >>> rotation. >>> >>> Signed-off-by: Dmitry Osipenko <dig...@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. >
I just found out that I forgot to drop the WIP patches which added transparent rotation support while was checking whether these plane DRM_MODE_ROTATE_180 could be dropped and it's actually need to be set for the planes, otherwise 180 rotation support is filtered out by the atomic check.