Re: [PATCH v4 8/8] drm/vkms: Add P01* formats
From: kernel test robot
Date: Thu Aug 13 2026 - 11:22:47 EST
Hi Louis,
kernel test robot noticed the following build warnings:
[auto build test WARNING on 2271e0a20ef795838527815e057f5af206b69c87]
url: https://github.com/intel-lab-lkp/linux/commits/Louis-Chauvet/drm-vkms-Create-helpers-macro-to-avoid-code-duplication-in-format-callbacks/20260813-163823
base: 2271e0a20ef795838527815e057f5af206b69c87
patch link: https://lore.kernel.org/r/20250530-b4-new-color-formats-v4-8-ef5f9f48376c%40bootlin.com
patch subject: [PATCH v4 8/8] drm/vkms: Add P01* formats
config: powerpc-allmodconfig (https://download.01.org/0day-ci/archive/20260813/202608132328.K0ZCjw8a-lkp@xxxxxxxxx/config)
compiler: powerpc64-linux-gcc (GCC) 16.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260813/202608132328.K0ZCjw8a-lkp@xxxxxxxxx/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202608132328.K0ZCjw8a-lkp@xxxxxxxxx/
All warnings (new ones prefixed by >>):
>> drivers/gpu/drm/vkms/vkms_formats.c:324: warning: Excess function parameter '__VA_ARGS__' description in 'READ_LINE'
>> drivers/gpu/drm/vkms/vkms_formats.c:335: warning: Function parameter or struct member 'a' not described in 'READ_LINE_ARGB8888'
>> drivers/gpu/drm/vkms/vkms_formats.c:335: warning: Function parameter or struct member 'r' not described in 'READ_LINE_ARGB8888'
>> drivers/gpu/drm/vkms/vkms_formats.c:335: warning: Function parameter or struct member 'g' not described in 'READ_LINE_ARGB8888'
>> drivers/gpu/drm/vkms/vkms_formats.c:335: warning: Function parameter or struct member 'b' not described in 'READ_LINE_ARGB8888'
>> drivers/gpu/drm/vkms/vkms_formats.c:345: warning: Function parameter or struct member 'a' not described in 'READ_LINE_le16161616'
>> drivers/gpu/drm/vkms/vkms_formats.c:345: warning: Function parameter or struct member 'r' not described in 'READ_LINE_le16161616'
>> drivers/gpu/drm/vkms/vkms_formats.c:345: warning: Function parameter or struct member 'g' not described in 'READ_LINE_le16161616'
>> drivers/gpu/drm/vkms/vkms_formats.c:345: warning: Function parameter or struct member 'b' not described in 'READ_LINE_le16161616'
vim +324 drivers/gpu/drm/vkms/vkms_formats.c
294
295 /**
296 * READ_LINE() - Generic generator for a read_line function which can be used for format with one
297 * plane and a block_h == block_w == 1.
298 *
299 * @function_name: Function name to generate
300 * @pixel_name: Temporary pixel name used in the @__VA_ARGS__ parameters
301 * @pixel_type: Used to specify the type you want to cast the pixel pointer
302 * @callback: Callback to call for each pixels. This fonction should take @__VA_ARGS__ as parameter
303 * and return a pixel_argb_u16
304 * @__VA_ARGS__: Argument to pass inside the callback. You can use @pixel_name to access current
305 * pixel.
306 */
307 #define READ_LINE(function_name, pixel_name, pixel_type, callback, ...) \
308 static void function_name(const struct vkms_plane_state *plane, int x_start, \
309 int y_start, enum pixel_read_direction direction, int count, \
310 struct pixel_argb_u16 out_pixel[]) \
311 { \
312 struct pixel_argb_u16 *end = out_pixel + count; \
313 int step = get_block_step_bytes(plane->frame_info->fb, direction, 0); \
314 u8 *src_pixels; \
315 \
316 packed_pixels_addr_1x1(plane->frame_info, x_start, y_start, 0, &src_pixels); \
317 \
318 while (out_pixel < end) { \
319 pixel_type *(pixel_name) = (pixel_type *)src_pixels; \
320 *out_pixel = (callback)(__VA_ARGS__); \
321 out_pixel += 1; \
322 src_pixels += step; \
323 } \
> 324 }
325
326 /**
327 * READ_LINE_ARGB8888() - Generic generator for ARGB8888 formats.
328 * The pixel type used is u8, so pixel_name[0]..pixel_name[n] are the n components of the pixel.
329 *
330 * @function_name: Function name to generate
331 * @pixel_name: temporary pixel to use in @a, @r, @g and @b parameters
332 * @a, @r, @g, @b: value of each channel
333 */
334 #define READ_LINE_ARGB8888(function_name, pixel_name, a, r, g, b) \
> 335 READ_LINE(function_name, pixel_name, u8, argb_u16_from_u8888, a, r, g, b)
336 /**
337 * READ_LINE_le16161616() - Generic generator for ARGB16161616 formats.
338 * The pixel type used is u16, so pixel_name[0]..pixel_name[n] are the n components of the pixel.
339 *
340 * @function_name: Function name to generate
341 * @pixel_name: temporary pixel to use in @a, @r, @g and @b parameters
342 * @a, @r, @g, @b: value of each channel
343 */
344 #define READ_LINE_le16161616(function_name, pixel_name, a, r, g, b) \
> 345 READ_LINE(function_name, pixel_name, __le16, argb_u16_from_le16161616, a, r, g, b)
346
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki