Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: Maíra Canal <mcanal@igalia.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Link: https://lore.kernel.org/r/20250703-b4-new-color-formats-v7-8-15fd8fd2e15c@bootlin.com
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>

+9 -1
+6 -1
drivers/gpu/drm/vkms/vkms_formats.c
··· 528 528 529 529 READ_LINE_YUV_SEMIPLANAR(YUV888_semiplanar_read_line, y, uv, u8, u8, argb_u16_from_yuv161616, 530 530 y[0] * 257, uv[0] * 257, uv[1] * 257) 531 - 531 + READ_LINE_YUV_SEMIPLANAR(YUV161616_semiplanar_read_line, y, uv, u16, u16, argb_u16_from_yuv161616, 532 + y[0], uv[0], uv[1]) 532 533 /* 533 534 * This callback can be used for YUV format where each color component is 534 535 * stored in a different plane (often called planar formats). It will ··· 726 725 case DRM_FORMAT_NV61: 727 726 case DRM_FORMAT_NV42: 728 727 return &YUV888_semiplanar_read_line; 728 + case DRM_FORMAT_P010: 729 + case DRM_FORMAT_P012: 730 + case DRM_FORMAT_P016: 731 + return &YUV161616_semiplanar_read_line; 729 732 case DRM_FORMAT_YUV420: 730 733 case DRM_FORMAT_YUV422: 731 734 case DRM_FORMAT_YUV444:
+3
drivers/gpu/drm/vkms/vkms_plane.c
··· 39 39 DRM_FORMAT_YVU420, 40 40 DRM_FORMAT_YVU422, 41 41 DRM_FORMAT_YVU444, 42 + DRM_FORMAT_P010, 43 + DRM_FORMAT_P012, 44 + DRM_FORMAT_P016, 42 45 DRM_FORMAT_R1, 43 46 DRM_FORMAT_R2, 44 47 DRM_FORMAT_R4,