Re: [PATCH] drm/sun4i: Add a few formats

From: Maxime Ripard
Date: Mon Oct 24 2016 - 15:24:38 EST


Hi,

On Fri, Oct 21, 2016 at 11:15:32AM +0800, Chen-Yu Tsai wrote:
> On Tue, Oct 18, 2016 at 4:46 PM, Maxime Ripard
> <maxime.ripard@xxxxxxxxxxxxxxxxxx> wrote:
> > The planes can do more than what was previously exposed. Add support for
> > them.
> >
> > Signed-off-by: Maxime Ripard <maxime.ripard@xxxxxxxxxxxxxxxxxx>
> > ---
> > drivers/gpu/drm/sun4i/sun4i_backend.c | 20 ++++++++++++++++++++
> > drivers/gpu/drm/sun4i/sun4i_layer.c | 6 ++++++
> > 2 files changed, 26 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/sun4i/sun4i_backend.c b/drivers/gpu/drm/sun4i/sun4i_backend.c
> > index afb7ddf660ef..b184a476a480 100644
> > --- a/drivers/gpu/drm/sun4i/sun4i_backend.c
> > +++ b/drivers/gpu/drm/sun4i/sun4i_backend.c
> > @@ -96,6 +96,22 @@ static int sun4i_backend_drm_format_to_layer(struct drm_plane *plane,
> > *mode = SUN4I_BACKEND_LAY_FBFMT_ARGB8888;
> > break;
> >
> > + case DRM_FORMAT_ARGB4444:
> > + *mode = SUN4I_BACKEND_LAY_FBFMT_ARGB4444;
> > + break;
> > +
> > + case DRM_FORMAT_ARGB1555:
> > + *mode = SUN4I_BACKEND_LAY_FBFMT_ARGB1555;
> > + break;
> > +
> > + case DRM_FORMAT_RGBA5551:
> > + *mode = SUN4I_BACKEND_LAY_FBFMT_RGBA5551;
> > + break;
> > +
> > + case DRM_FORMAT_RGBA4444:
> > + *mode = SUN4I_BACKEND_LAY_FBFMT_RGBA4444;
>
> The A20 manual only lists ARGB4444, not RGBA4444. There might be
> some discrepancy here. We can deal with them

Hmm, yes, that's weird. But I guess this would be part of porting it
to the A20.

> Also there are some more formats missing from the list, could you
> add them as well?

Which one do you refer to?

> > + break;
> > +
> > case DRM_FORMAT_XRGB8888:
> > *mode = SUN4I_BACKEND_LAY_FBFMT_XRGB8888;
> > break;
> > @@ -104,6 +120,10 @@ static int sun4i_backend_drm_format_to_layer(struct drm_plane *plane,
> > *mode = SUN4I_BACKEND_LAY_FBFMT_RGB888;
> > break;
> >
> > + case DRM_FORMAT_RGB565:
> > + *mode = SUN4I_BACKEND_LAY_FBFMT_RGB565;
> > + break;
> > +
> > default:
> > return -EINVAL;
> > }
> > diff --git a/drivers/gpu/drm/sun4i/sun4i_layer.c b/drivers/gpu/drm/sun4i/sun4i_layer.c
> > index f0035bf5efea..5d53c977bca5 100644
> > --- a/drivers/gpu/drm/sun4i/sun4i_layer.c
> > +++ b/drivers/gpu/drm/sun4i/sun4i_layer.c
> > @@ -73,12 +73,18 @@ static const struct drm_plane_funcs sun4i_backend_layer_funcs = {
> > static const uint32_t sun4i_backend_layer_formats_primary[] = {
> > DRM_FORMAT_ARGB8888,
> > DRM_FORMAT_RGB888,
> > + DRM_FORMAT_RGB565,
> > DRM_FORMAT_XRGB8888,
> > };
> >
> > static const uint32_t sun4i_backend_layer_formats_overlay[] = {
> > DRM_FORMAT_ARGB8888,
> > + DRM_FORMAT_ARGB4444,
> > + DRM_FORMAT_ARGB1555,
> > + DRM_FORMAT_RGBA5551,
> > + DRM_FORMAT_RGBA4444,
> > DRM_FORMAT_RGB888,
> > + DRM_FORMAT_RGB565,
> > DRM_FORMAT_XRGB8888,
>
> Could you explain in the commit log why these 2 aren't the same?

Yep, I will.

Thanks!
Maxime

--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

Attachment: signature.asc
Description: PGP signature