[PATCH RESEND 1/2] Refactoring the fbcon packed pixel drawing routines
kernel test robot
lkp at intel.com
Mon Mar 10 01:00:04 UTC 2025
Hi Zsolt,
kernel test robot noticed the following build errors:
[auto build test ERROR on linus/master]
[also build test ERROR on v6.14-rc5 next-20250307]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Zsolt-Kajtar/Refactoring-the-fbcon-packed-pixel-drawing-routines/20250310-025619
base: linus/master
patch link: https://lore.kernel.org/r/20250309184716.13732-2-soci%40c64.rulez.org
patch subject: [PATCH RESEND 1/2] Refactoring the fbcon packed pixel drawing routines
config: i386-buildonly-randconfig-002-20250310 (https://download.01.org/0day-ci/archive/20250310/202503100810.9iId3430-lkp@intel.com/config)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250310/202503100810.9iId3430-lkp@intel.com/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 at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503100810.9iId3430-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
In file included from drivers/video/fbdev/aty/mach64_cursor.c:9:
>> drivers/video/fbdev/aty/../core/fb_draw.h:16:48: warning: declaration of 'struct fb_address' will not be visible outside of this function [-Wvisibility]
16 | static inline void fb_address_move_long(struct fb_address *adr, int offset)
| ^
>> drivers/video/fbdev/aty/../core/fb_draw.h:18:5: error: incomplete definition of type 'struct fb_address'
18 | adr->address += offset * (BITS_PER_LONG / BITS_PER_BYTE);
| ~~~^
drivers/video/fbdev/aty/../core/fb_draw.h:16:48: note: forward declaration of 'struct fb_address'
16 | static inline void fb_address_move_long(struct fb_address *adr, int offset)
| ^
drivers/video/fbdev/aty/../core/fb_draw.h:22:46: warning: declaration of 'struct fb_address' will not be visible outside of this function [-Wvisibility]
22 | static inline void fb_address_forward(struct fb_address *adr, unsigned int offset)
| ^
drivers/video/fbdev/aty/../core/fb_draw.h:24:39: error: incomplete definition of type 'struct fb_address'
24 | unsigned int bits = (unsigned int)adr->bits + offset;
| ~~~^
drivers/video/fbdev/aty/../core/fb_draw.h:22:46: note: forward declaration of 'struct fb_address'
22 | static inline void fb_address_forward(struct fb_address *adr, unsigned int offset)
| ^
drivers/video/fbdev/aty/../core/fb_draw.h:26:5: error: incomplete definition of type 'struct fb_address'
26 | adr->bits = bits & (BITS_PER_LONG - 1u);
| ~~~^
drivers/video/fbdev/aty/../core/fb_draw.h:22:46: note: forward declaration of 'struct fb_address'
22 | static inline void fb_address_forward(struct fb_address *adr, unsigned int offset)
| ^
drivers/video/fbdev/aty/../core/fb_draw.h:27:5: error: incomplete definition of type 'struct fb_address'
27 | adr->address += (bits & ~(BITS_PER_LONG - 1u)) / BITS_PER_BYTE;
| ~~~^
drivers/video/fbdev/aty/../core/fb_draw.h:22:46: note: forward declaration of 'struct fb_address'
22 | static inline void fb_address_forward(struct fb_address *adr, unsigned int offset)
| ^
drivers/video/fbdev/aty/../core/fb_draw.h:31:47: warning: declaration of 'struct fb_address' will not be visible outside of this function [-Wvisibility]
31 | static inline void fb_address_backward(struct fb_address *adr, unsigned int offset)
| ^
drivers/video/fbdev/aty/../core/fb_draw.h:33:16: error: incomplete definition of type 'struct fb_address'
33 | int bits = adr->bits - (int)offset;
| ~~~^
drivers/video/fbdev/aty/../core/fb_draw.h:31:47: note: forward declaration of 'struct fb_address'
31 | static inline void fb_address_backward(struct fb_address *adr, unsigned int offset)
| ^
drivers/video/fbdev/aty/../core/fb_draw.h:35:5: error: incomplete definition of type 'struct fb_address'
35 | adr->bits = bits & (BITS_PER_LONG - 1);
| ~~~^
drivers/video/fbdev/aty/../core/fb_draw.h:31:47: note: forward declaration of 'struct fb_address'
31 | static inline void fb_address_backward(struct fb_address *adr, unsigned int offset)
| ^
drivers/video/fbdev/aty/../core/fb_draw.h:37:6: error: incomplete definition of type 'struct fb_address'
37 | adr->address -= (adr->bits - bits) / BITS_PER_BYTE;
| ~~~^
drivers/video/fbdev/aty/../core/fb_draw.h:31:47: note: forward declaration of 'struct fb_address'
31 | static inline void fb_address_backward(struct fb_address *adr, unsigned int offset)
| ^
drivers/video/fbdev/aty/../core/fb_draw.h:37:23: error: incomplete definition of type 'struct fb_address'
37 | adr->address -= (adr->bits - bits) / BITS_PER_BYTE;
| ~~~^
drivers/video/fbdev/aty/../core/fb_draw.h:31:47: note: forward declaration of 'struct fb_address'
31 | static inline void fb_address_backward(struct fb_address *adr, unsigned int offset)
| ^
drivers/video/fbdev/aty/../core/fb_draw.h:39:6: error: incomplete definition of type 'struct fb_address'
39 | adr->address += (bits - adr->bits) / BITS_PER_BYTE;
| ~~~^
drivers/video/fbdev/aty/../core/fb_draw.h:31:47: note: forward declaration of 'struct fb_address'
31 | static inline void fb_address_backward(struct fb_address *adr, unsigned int offset)
| ^
drivers/video/fbdev/aty/../core/fb_draw.h:39:30: error: incomplete definition of type 'struct fb_address'
39 | adr->address += (bits - adr->bits) / BITS_PER_BYTE;
| ~~~^
drivers/video/fbdev/aty/../core/fb_draw.h:31:47: note: forward declaration of 'struct fb_address'
31 | static inline void fb_address_backward(struct fb_address *adr, unsigned int offset)
| ^
drivers/video/fbdev/aty/../core/fb_draw.h:50:34: warning: declaration of 'struct fb_address' will not be visible outside of this function [-Wvisibility]
50 | int offset, const struct fb_address *dst)
| ^
>> drivers/video/fbdev/aty/../core/fb_draw.h:52:2: error: call to undeclared function 'fb_write_offset'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
52 | fb_write_offset(fb_comp(val, fb_read_offset(offset, dst), mask), offset, dst);
| ^
drivers/video/fbdev/aty/../core/fb_draw.h:52:2: note: did you mean 'fb_modify_offset'?
drivers/video/fbdev/aty/../core/fb_draw.h:49:20: note: 'fb_modify_offset' declared here
49 | static inline void fb_modify_offset(unsigned long val, unsigned long mask,
| ^
50 | int offset, const struct fb_address *dst)
51 | {
52 | fb_write_offset(fb_comp(val, fb_read_offset(offset, dst), mask), offset, dst);
| ~~~~~~~~~~~~~~~
| fb_modify_offset
>> drivers/video/fbdev/aty/../core/fb_draw.h:52:31: error: call to undeclared function 'fb_read_offset'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
52 | fb_write_offset(fb_comp(val, fb_read_offset(offset, dst), mask), offset, dst);
| ^
>> drivers/video/fbdev/aty/mach64_cursor.c:184:9: error: call to undeclared function 'comp'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
184 | l = comp(l, 0xaaaa,
| ^
4 warnings and 13 errors generated.
vim +18 drivers/video/fbdev/aty/../core/fb_draw.h
14
15 /* move the address pointer by the number of words */
> 16 static inline void fb_address_move_long(struct fb_address *adr, int offset)
17 {
> 18 adr->address += offset * (BITS_PER_LONG / BITS_PER_BYTE);
19 }
20
21 /* move the address pointer forward with the number of bits */
22 static inline void fb_address_forward(struct fb_address *adr, unsigned int offset)
23 {
24 unsigned int bits = (unsigned int)adr->bits + offset;
25
26 adr->bits = bits & (BITS_PER_LONG - 1u);
27 adr->address += (bits & ~(BITS_PER_LONG - 1u)) / BITS_PER_BYTE;
28 }
29
30 /* move the address pointer backwards with the number of bits */
31 static inline void fb_address_backward(struct fb_address *adr, unsigned int offset)
32 {
33 int bits = adr->bits - (int)offset;
34
35 adr->bits = bits & (BITS_PER_LONG - 1);
36 if (bits < 0)
37 adr->address -= (adr->bits - bits) / BITS_PER_BYTE;
38 else
39 adr->address += (bits - adr->bits) / BITS_PER_BYTE;
40 }
41
42 /* compose pixels based on mask */
43 static inline unsigned long fb_comp(unsigned long set, unsigned long unset, unsigned long mask)
44 {
45 return ((set ^ unset) & mask) ^ unset;
46 }
47
48 /* framebuffer read-modify-write access for replacing bits in the mask */
49 static inline void fb_modify_offset(unsigned long val, unsigned long mask,
50 int offset, const struct fb_address *dst)
51 {
> 52 fb_write_offset(fb_comp(val, fb_read_offset(offset, dst), mask), offset, dst);
53 }
54
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the dri-devel
mailing list