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/20240809-yuv-v10-0-1a7c764166f7@xxxxxxxxxxx/ Signed-off-by: Louis Chauvet <louis.chauvet@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 | 320 ++++++++++++++------------ drivers/gpu/drm/vkms/vkms_formats.h | 4 +- drivers/gpu/drm/vkms/vkms_plane.c | 14 ++ 4 files changed, 195 insertions(+), 146 deletions(-) --- base-commit: 82fe69e63d2b5a5e86ea94c7361c833d3848ab69 change-id: 20240312-b4-new-color-formats-1be9d688b21a prerequisite-message-id: <20241007-yuv-v12-0-01c1ada6fec8@xxxxxxxxxxx> prerequisite-patch-id: ae2d8b2efbbaa9decce56632c498c87e708288b3 prerequisite-patch-id: d1e73379a15c5062924cf2dc8619676e13f35a13 prerequisite-patch-id: 2eed29b53617ba76169e1af303e4899d517a3a18 prerequisite-patch-id: 3f84c6e64b3a25510e929914e97ae2549451707c prerequisite-patch-id: 82523a917646793deeec7cdcc7ff286bd924fd21 prerequisite-patch-id: dda6bf4692cd1795c489ff58e72c0841ea8ffbc4 prerequisite-patch-id: a0639eb773bf58c2ffe76f2567a8c74b6275092c prerequisite-patch-id: 7a63d245a377d5f5283f48e8f52421b912811752 prerequisite-patch-id: deda292af6d8bbf6762b0bf4d351ffd2225995d8 prerequisite-patch-id: 6c2aa2645c7d854951608aa4d15a02e076abe1fe prerequisite-patch-id: 11ae7be077ce7022f61101d41a9ba79b98efb273 prerequisite-patch-id: 18554f49b53cbcfd4a8ca50dc83b17dd3cf96474 prerequisite-patch-id: dc61c6d3db73053fc36e115af561e0c42b467de2 prerequisite-patch-id: 43f37e9c1bc041d491e41dfb59548ed258a1e071 prerequisite-patch-id: 5633292e10132d29be2467812e6e2e824cfedb67 Best regards, -- Louis Chauvet <louis.chauvet@xxxxxxxxxxx>