Re: drm/sun4i: Add missing pixel formats to the vi layer

From: Jernej Åkrabec
Date: Thu Sep 19 2019 - 14:53:20 EST


Hi!

Dne sreda, 18. september 2019 ob 13:05:41 CEST je
roman.stratiienko@xxxxxxxxxxxxxxx napisal(a):
> From: Roman Stratiienko <roman.stratiienko@xxxxxxxxxxxxxxx>
>
> According to Allwinner DE2.0 Specification REV 1.0, vi layer supports the
> following pixel formats: ABGR_8888, ARGB_8888, BGRA_8888, RGBA_8888

It's true that DE2 VI layers support those formats, but it wouldn't change
anything because alpha blending is not supported by those planes. These
formats were deliberately left out because their counterparts without alpha
exist, for example ABGR8888 <-> XBGR8888. It would also confuse user, which
would expect that alpha blending works if format with alpha channel is
selected.

Admittedly some formats with alpha are still reported as supported due to lack
of their counterparts without alpha, but I'm fine with removing them for
consistency.

Best regards,
Jernej

>
> Signed-off-by: Roman Stratiienko <roman.stratiienko@xxxxxxxxxxxxxxx>
> ---
> drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
> b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c index bd0e6a52d1d8..07c27e6a4b77
> 100644
> --- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
> +++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
> @@ -404,17 +404,21 @@ static const struct drm_plane_funcs
> sun8i_vi_layer_funcs = { static const u32 sun8i_vi_layer_formats[] = {
> DRM_FORMAT_ABGR1555,
> DRM_FORMAT_ABGR4444,
> + DRM_FORMAT_ABGR8888,
> DRM_FORMAT_ARGB1555,
> DRM_FORMAT_ARGB4444,
> + DRM_FORMAT_ARGB8888,
> DRM_FORMAT_BGR565,
> DRM_FORMAT_BGR888,
> DRM_FORMAT_BGRA5551,
> DRM_FORMAT_BGRA4444,
> + DRM_FORMAT_BGRA8888,
> DRM_FORMAT_BGRX8888,
> DRM_FORMAT_RGB565,
> DRM_FORMAT_RGB888,
> DRM_FORMAT_RGBA4444,
> DRM_FORMAT_RGBA5551,
> + DRM_FORMAT_RGBA8888,
> DRM_FORMAT_RGBX8888,
> DRM_FORMAT_XBGR8888,
> DRM_FORMAT_XRGB8888,