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

Dmitry Osipenko digetx at gmail.com
Tue Jun 16 11:25:38 UTC 2020


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.


More information about the dri-devel mailing list