Hi Jacopo, Thank you for this patch.
On Mon, 26 Feb 2024 at 13:26, Jacopo Mondi <jacopo.mo...@ideasonboard.com> wrote: > > Add FourCC definitions for the 48-bit RGB/BGR formats to the > DRM/KMS uapi. > > The format will be used by the Raspberry Pi PiSP Back End, > supported by a V4L2 driver in kernel space and by libcamera in > userspace, which uses the DRM FourCC identifiers. > > Signed-off-by: Jacopo Mondi <jacopo.mo...@ideasonboard.com> All the fields look reasonable to me, so: Reviewed-by: Naushir Patuck <na...@raspberrypi.com> > --- > drivers/gpu/drm/drm_fourcc.c | 8 ++++++++ > include/uapi/drm/drm_fourcc.h | 4 ++++ > 2 files changed, 12 insertions(+) > > diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c > index 193cf8ed7912..908f20b96fd5 100644 > --- a/drivers/gpu/drm/drm_fourcc.c > +++ b/drivers/gpu/drm/drm_fourcc.c > @@ -210,6 +210,14 @@ const struct drm_format_info *__drm_format_info(u32 > format) > { .format = DRM_FORMAT_ABGR2101010, .depth = 30, > .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true > }, > { .format = DRM_FORMAT_RGBA1010102, .depth = 30, > .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true > }, > { .format = DRM_FORMAT_BGRA1010102, .depth = 30, > .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true > }, > + { .format = DRM_FORMAT_RGB161616, .depth = 0, > + .num_planes = 1, .char_per_block = { 6, 0, 0 }, > + .block_w = { 1, 0, 0 }, .block_h = { 1, 0, 0 }, > + .hsub = 1, .vsub = 1, .has_alpha = false }, > + { .format = DRM_FORMAT_BGR161616, .depth = 0, > + .num_planes = 1, .char_per_block = { 6, 0, 0 }, > + .block_w = { 1, 0, 0 }, .block_h = { 1, 0, 0 }, > + .hsub = 1, .vsub = 1, .has_alpha = false }, > { .format = DRM_FORMAT_ARGB8888, .depth = 32, > .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true > }, > { .format = DRM_FORMAT_ABGR8888, .depth = 32, > .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true > }, > { .format = DRM_FORMAT_RGBA8888, .depth = 32, > .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true > }, > diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h > index 84d502e42961..00db00083175 100644 > --- a/include/uapi/drm/drm_fourcc.h > +++ b/include/uapi/drm/drm_fourcc.h > @@ -210,6 +210,10 @@ extern "C" { > #define DRM_FORMAT_RGBA1010102 fourcc_code('R', 'A', '3', '0') /* [31:0] > R:G:B:A 10:10:10:2 little endian */ > #define DRM_FORMAT_BGRA1010102 fourcc_code('B', 'A', '3', '0') /* [31:0] > B:G:R:A 10:10:10:2 little endian */ > > +/* 48 bpp RGB */ > +#define DRM_FORMAT_RGB161616 fourcc_code('R', 'G', '4', '8') /* [47:0] R:G:B > 16:16:16 little endian */ > +#define DRM_FORMAT_BGR161616 fourcc_code('B', 'G', '4', '8') /* [47:0] B:G:R > 16:16:16 little endian */ > + > /* 64 bpp RGB */ > #define DRM_FORMAT_XRGB16161616 fourcc_code('X', 'R', '4', '8') /* > [63:0] x:R:G:B 16:16:16:16 little endian */ > #define DRM_FORMAT_XBGR16161616 fourcc_code('X', 'B', '4', '8') /* > [63:0] x:B:G:R 16:16:16:16 little endian */ > -- > 2.43.0 >