This series introduce a macro to generate a function to read simple formats. It avoid duplication of the same logic for similar formats. PATCH 1 is the introduction of the macro and adaptation of the existing code to avoid duplication PATCH 2-6 introduce new formats with the help of this macro. This series must be applied on top of [1]. [1]: https://lore.kernel.org/all/20241122-yuv-v14-0-e66d83d28d0c@xxxxxxxxxxx/ Signed-off-by: Louis Chauvet <louis.chauvet@xxxxxxxxxxx> --- Changes in v3: - Rebased on new YUV iterations - Link to v2: https://lore.kernel.org/r/20241007-b4-new-color-formats-v2-0-d47da50d4674@xxxxxxxxxxx Changes in v2: - Add proper casting/type to __le16 when needed to avoid warnings with sparse - Change the function argb_u16_from_yuv8888 to argb_u16_from_yuv161616 to support 16 bits values. - Add support for P010/P012/P016 format - Link to v1: https://lore.kernel.org/r/20240516-b4-new-color-formats-v1-0-74cf9fe07317@xxxxxxxxxxx --- Louis Chauvet (8): drm/vkms: Create helpers macro to avoid code duplication in format callbacks drm/vkms: Add support for ARGB8888 formats drm/vkms: Add support for ARGB16161616 formats drm/vkms: Add support for RGB565 formats drm/vkms: Add support for RGB888 formats drm/vkms: Change YUV helpers to support u16 inputs for conversion drm/vkms: Create helper macro for YUV formats drm/vkms: Add P01* formats drivers/gpu/drm/vkms/tests/vkms_format_test.c | 3 +- drivers/gpu/drm/vkms/vkms_formats.c | 318 ++++++++++++++------------ drivers/gpu/drm/vkms/vkms_formats.h | 4 +- drivers/gpu/drm/vkms/vkms_plane.c | 14 ++ 4 files changed, 194 insertions(+), 145 deletions(-) --- base-commit: 98efdd02e220fea84c1491012d7292749a71faeb change-id: 20240312-b4-new-color-formats-1be9d688b21a prerequisite-message-id: 20241122-yuv-v14-0-e66d83d28d0c@xxxxxxxxxxx prerequisite-patch-id: d08b040cfd7aeba4a237029500f5aa8266450cbd prerequisite-patch-id: deda292af6d8bbf6762b0bf4d351ffd2225995d8 prerequisite-patch-id: 6c2aa2645c7d854951608aa4d15a02e076abe1fe prerequisite-patch-id: 62f509c48590dc333dc84e2185dc8b9edd61761b prerequisite-patch-id: 7d988613c79a1ab056110418c04865bf019402cc prerequisite-patch-id: 43f37e9c1bc041d491e41dfb59548ed258a1e071 prerequisite-patch-id: 1b2a3898d5f8c21b0d306c07b424414bcb14554b Best regards, -- Louis Chauvet <louis.chauvet@xxxxxxxxxxx>