Re: [PATCH v2 5/5] drm/tegra: plane: Support 180Â rotation

From: Dmitry Osipenko
Date: Tue Jun 16 2020 - 07:25:47 EST


16.06.2020 00:47, Emil Velikov ÐÐÑÐÑ:
> Hi all,
>
> Perhaps a silly question:
>
> On Mon, 15 Jun 2020 at 08:28, Dmitry Osipenko <digetx@xxxxxxxxx> wrote:
>>
>> Combining horizontal and vertical reflections gives us 180 degrees of
>> rotation.
>>
>> Signed-off-by: Dmitry Osipenko <digetx@xxxxxxxxx>
>> ---
>> 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.