]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/fourcc: Add DRM_FORMAT_P230
authorTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Thu, 23 Apr 2026 14:21:13 +0000 (17:21 +0300)
committerTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Tue, 5 May 2026 11:04:29 +0000 (14:04 +0300)
Add a new pixel format, DRM_FORMAT_P230 ("P230")

P230 is 2 plane 10 bit per component YCbCr 2x1 subsampled format. P230
is similar to the already existing P030 format, which is 2x2 subsampled.

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Vishal Sagar <vishal.sagar@amd.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Link: https://patch.msgid.link/20260423-xilinx-formats-v10-2-c690c2b8ea89@ideasonboard.com
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
drivers/gpu/drm/drm_fourcc.c
include/uapi/drm/drm_fourcc.h

index e662aea9d1057ad529fba9250f6dc39b2e5fd39b..5b6d8f4686c4d54b3efa164e376a89d467b83fb3 100644 (file)
@@ -354,6 +354,9 @@ const struct drm_format_info *__drm_format_info(u32 format)
                { .format = DRM_FORMAT_P030,            .depth = 0,  .num_planes = 2,
                  .char_per_block = { 4, 8, 0 }, .block_w = { 3, 3, 0 }, .block_h = { 1, 1, 0 },
                  .hsub = 2, .vsub = 2, .is_yuv = true},
+               { .format = DRM_FORMAT_P230,            .depth = 0,  .num_planes = 2,
+                 .char_per_block = { 4, 8, 0 }, .block_w = { 3, 3, 0 }, .block_h = { 1, 1, 0 },
+                 .hsub = 2, .vsub = 1, .is_yuv = true },
                { .format = DRM_FORMAT_S010,            .depth = 0,  .num_planes = 3,
                  .char_per_block = { 2, 2, 2 }, .block_w = { 1, 1, 1 }, .block_h = { 1, 1, 1 },
                  .hsub = 2, .vsub = 2, .is_yuv = true},
index 2caf8249f892342def059ba696a5ef6b349c1431..7eb55028f35cf9ae7162ca452f63d1aafa1fcafa 100644 (file)
@@ -361,6 +361,14 @@ extern "C" {
  */
 #define DRM_FORMAT_P030                fourcc_code('P', '0', '3', '0') /* 2x2 subsampled Cr:Cb plane 10 bits per channel packed */
 
+/*
+ * 2 plane YCbCr422.
+ * 3 10 bit components and 2 padding bits packed into 4 bytes.
+ * index 0 = Y plane, [31:0] x:Y2:Y1:Y0 2:10:10:10 little endian
+ * index 1 = Cr:Cb plane, [63:0] x:Cr2:Cb2:Cr1:x:Cb1:Cr0:Cb0 [2:10:10:10:2:10:10:10] little endian
+ */
+#define DRM_FORMAT_P230                fourcc_code('P', '2', '3', '0') /* 2x1 subsampled Cr:Cb plane 10 bits per channel packed */
+
 /* 3 plane non-subsampled (444) YCbCr
  * 16 bits per component, but only 10 bits are used and 6 bits are padded
  * index 0: Y plane, [15:0] Y:x [10:6] little endian