Message ID | 20250326-xilinx-formats-v4-5-322a300c6d72@ideasonboard.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | drm: Add new pixel formats for Xilinx Zynqmp | expand |
Hi Tomi, Thank you for the patch. On Wed, Mar 26, 2025 at 03:22:48PM +0200, Tomi Valkeinen wrote: > Add X403, a 3 plane non-subsampled YCbCr format. I'd add 10-bpp somewhere in there. > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> > --- > drivers/gpu/drm/drm_fourcc.c | 3 +++ > include/uapi/drm/drm_fourcc.h | 8 ++++++++ > 2 files changed, 11 insertions(+) > > diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c > index e5f04f7ec164..60684f99f4a7 100644 > --- a/drivers/gpu/drm/drm_fourcc.c > +++ b/drivers/gpu/drm/drm_fourcc.c > @@ -356,6 +356,9 @@ const struct drm_format_info *__drm_format_info(u32 format) > { .format = DRM_FORMAT_Y10_P32, .depth = 0, .num_planes = 1, > .char_per_block = { 4, 0, 0 }, .block_w = { 3, 0, 0 }, .block_h = { 1, 0, 0 }, > .hsub = 1, .vsub = 1, .is_yuv = true }, > + { .format = DRM_FORMAT_X403, .depth = 0, .num_planes = 3, > + .char_per_block = { 4, 4, 4 }, .block_w = { 3, 3, 3 }, .block_h = { 1, 1, 1 }, > + .hsub = 1, .vsub = 1, .is_yuv = true }, > }; > > unsigned int i; > diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h > index f6316adbeb97..10d77f6f6e95 100644 > --- a/include/uapi/drm/drm_fourcc.h > +++ b/include/uapi/drm/drm_fourcc.h > @@ -385,6 +385,14 @@ extern "C" { > */ > #define DRM_FORMAT_Q401 fourcc_code('Q', '4', '0', '1') > > +/* 3 plane non-subsampled (444) YCbCr /* * 3 plane non-subsampled (444) YCbCr Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > + * 10 bpc, 30 bits per sample image data in a single contiguous buffer. > + * index 0: Y plane, [31:0] x:Y2:Y1:Y0 [2:10:10:10] little endian > + * index 1: Cb plane, [31:0] x:Cb2:Cb1:Cb0 [2:10:10:10] little endian > + * index 2: Cr plane, [31:0] x:Cr2:Cr1:Cr0 [2:10:10:10] little endian > + */ > +#define DRM_FORMAT_X403 fourcc_code('X', '4', '0', '3') > + > /* > * 3 plane YCbCr > * index 0: Y plane, [7:0] Y
diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c index e5f04f7ec164..60684f99f4a7 100644 --- a/drivers/gpu/drm/drm_fourcc.c +++ b/drivers/gpu/drm/drm_fourcc.c @@ -356,6 +356,9 @@ const struct drm_format_info *__drm_format_info(u32 format) { .format = DRM_FORMAT_Y10_P32, .depth = 0, .num_planes = 1, .char_per_block = { 4, 0, 0 }, .block_w = { 3, 0, 0 }, .block_h = { 1, 0, 0 }, .hsub = 1, .vsub = 1, .is_yuv = true }, + { .format = DRM_FORMAT_X403, .depth = 0, .num_planes = 3, + .char_per_block = { 4, 4, 4 }, .block_w = { 3, 3, 3 }, .block_h = { 1, 1, 1 }, + .hsub = 1, .vsub = 1, .is_yuv = true }, }; unsigned int i; diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h index f6316adbeb97..10d77f6f6e95 100644 --- a/include/uapi/drm/drm_fourcc.h +++ b/include/uapi/drm/drm_fourcc.h @@ -385,6 +385,14 @@ extern "C" { */ #define DRM_FORMAT_Q401 fourcc_code('Q', '4', '0', '1') +/* 3 plane non-subsampled (444) YCbCr + * 10 bpc, 30 bits per sample image data in a single contiguous buffer. + * index 0: Y plane, [31:0] x:Y2:Y1:Y0 [2:10:10:10] little endian + * index 1: Cb plane, [31:0] x:Cb2:Cb1:Cb0 [2:10:10:10] little endian + * index 2: Cr plane, [31:0] x:Cr2:Cr1:Cr0 [2:10:10:10] little endian + */ +#define DRM_FORMAT_X403 fourcc_code('X', '4', '0', '3') + /* * 3 plane YCbCr * index 0: Y plane, [7:0] Y
Add X403, a 3 plane non-subsampled YCbCr format. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> --- drivers/gpu/drm/drm_fourcc.c | 3 +++ include/uapi/drm/drm_fourcc.h | 8 ++++++++ 2 files changed, 11 insertions(+)