Unverified Commit 9cd6b43a authored by Louis Chauvet's avatar Louis Chauvet
Browse files

drm/vkms: Add P01* formats



The formats NV 12/16/24/21/61/42 were already supported.
Add support for:
- P010
- P012
- P016

Reviewed-by: default avatarMaíra Canal <mcanal@igalia.com>
Acked-by: default avatarDaniel Stone <daniels@collabora.com>
Link: https://lore.kernel.org/r/20250703-b4-new-color-formats-v7-8-15fd8fd2e15c@bootlin.com


Signed-off-by: default avatarLouis Chauvet <louis.chauvet@bootlin.com>
parent 9e6600e9
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -528,7 +528,8 @@ static void function_name(const struct vkms_plane_state *plane, int x_start, \

READ_LINE_YUV_SEMIPLANAR(YUV888_semiplanar_read_line, y, uv, u8, u8, argb_u16_from_yuv161616,
			 y[0] * 257, uv[0] * 257, uv[1] * 257)

READ_LINE_YUV_SEMIPLANAR(YUV161616_semiplanar_read_line, y, uv, u16, u16, argb_u16_from_yuv161616,
			 y[0], uv[0], uv[1])
/*
 * This callback can be used for YUV format where each color component is
 * stored in a different plane (often called planar formats). It will
@@ -725,6 +726,10 @@ pixel_read_line_t get_pixel_read_line_function(u32 format)
	case DRM_FORMAT_NV61:
	case DRM_FORMAT_NV42:
		return &YUV888_semiplanar_read_line;
	case DRM_FORMAT_P010:
	case DRM_FORMAT_P012:
	case DRM_FORMAT_P016:
		return &YUV161616_semiplanar_read_line;
	case DRM_FORMAT_YUV420:
	case DRM_FORMAT_YUV422:
	case DRM_FORMAT_YUV444:
+3 −0
Original line number Diff line number Diff line
@@ -39,6 +39,9 @@ static const u32 vkms_formats[] = {
	DRM_FORMAT_YVU420,
	DRM_FORMAT_YVU422,
	DRM_FORMAT_YVU444,
	DRM_FORMAT_P010,
	DRM_FORMAT_P012,
	DRM_FORMAT_P016,
	DRM_FORMAT_R1,
	DRM_FORMAT_R2,
	DRM_FORMAT_R4,