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

Dmitry Osipenko digetx at gmail.com
Wed Jun 17 18:50:41 UTC 2020


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 <digetx at gmail.com> wrote:
>>>
>>> Combining horizontal and vertical reflections gives us 180 degrees of
>>> rotation.
>>>
>>> Signed-off-by: Dmitry Osipenko <digetx at 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.


More information about the dri-devel mailing list