From: kernel test robot <lkp@intel.com>
To: Zsolt Kajtar <soci@c64.rulez.org>,
linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org
Cc: oe-kbuild-all@lists.linux.dev, Zsolt Kajtar <soci@c64.rulez.org>
Subject: Re: [PATCH RESEND 1/2] Refactoring the fbcon packed pixel drawing routines
Date: Mon, 10 Mar 2025 10:22:42 +0800 [thread overview]
Message-ID: <202503101013.VkX1hbJx-lkp@intel.com> (raw)
In-Reply-To: <20250309184716.13732-2-soci@c64.rulez.org>
Hi Zsolt,
kernel test robot noticed the following build errors:
[auto build test ERROR on linus/master]
[also build test ERROR on v6.14-rc6 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: arm-randconfig-002-20250310 (https://download.01.org/0day-ci/archive/20250310/202503101013.VkX1hbJx-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250310/202503101013.VkX1hbJx-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503101013.VkX1hbJx-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
In file included from drivers/video/fbdev/wmt_ge_rops.c:15:
>> drivers/video/fbdev/core/fb_draw.h:16:48: warning: 'struct fb_address' declared inside parameter list will not be visible outside of this definition or declaration
16 | static inline void fb_address_move_long(struct fb_address *adr, int offset)
| ^~~~~~~~~~
drivers/video/fbdev/core/fb_draw.h: In function 'fb_address_move_long':
>> drivers/video/fbdev/core/fb_draw.h:18:12: error: invalid use of undefined type 'struct fb_address'
18 | adr->address += offset * (BITS_PER_LONG / BITS_PER_BYTE);
| ^~
drivers/video/fbdev/core/fb_draw.h: At top level:
drivers/video/fbdev/core/fb_draw.h:22:46: warning: 'struct fb_address' declared inside parameter list will not be visible outside of this definition or declaration
22 | static inline void fb_address_forward(struct fb_address *adr, unsigned int offset)
| ^~~~~~~~~~
drivers/video/fbdev/core/fb_draw.h: In function 'fb_address_forward':
drivers/video/fbdev/core/fb_draw.h:24:46: error: invalid use of undefined type 'struct fb_address'
24 | unsigned int bits = (unsigned int)adr->bits + offset;
| ^~
drivers/video/fbdev/core/fb_draw.h:26:12: error: invalid use of undefined type 'struct fb_address'
26 | adr->bits = bits & (BITS_PER_LONG - 1u);
| ^~
drivers/video/fbdev/core/fb_draw.h:27:12: error: invalid use of undefined type 'struct fb_address'
27 | adr->address += (bits & ~(BITS_PER_LONG - 1u)) / BITS_PER_BYTE;
| ^~
drivers/video/fbdev/core/fb_draw.h: At top level:
drivers/video/fbdev/core/fb_draw.h:31:47: warning: 'struct fb_address' declared inside parameter list will not be visible outside of this definition or declaration
31 | static inline void fb_address_backward(struct fb_address *adr, unsigned int offset)
| ^~~~~~~~~~
drivers/video/fbdev/core/fb_draw.h: In function 'fb_address_backward':
drivers/video/fbdev/core/fb_draw.h:33:23: error: invalid use of undefined type 'struct fb_address'
33 | int bits = adr->bits - (int)offset;
| ^~
drivers/video/fbdev/core/fb_draw.h:35:12: error: invalid use of undefined type 'struct fb_address'
35 | adr->bits = bits & (BITS_PER_LONG - 1);
| ^~
drivers/video/fbdev/core/fb_draw.h:37:20: error: invalid use of undefined type 'struct fb_address'
37 | adr->address -= (adr->bits - bits) / BITS_PER_BYTE;
| ^~
drivers/video/fbdev/core/fb_draw.h:37:37: error: invalid use of undefined type 'struct fb_address'
37 | adr->address -= (adr->bits - bits) / BITS_PER_BYTE;
| ^~
drivers/video/fbdev/core/fb_draw.h:39:20: error: invalid use of undefined type 'struct fb_address'
39 | adr->address += (bits - adr->bits) / BITS_PER_BYTE;
| ^~
drivers/video/fbdev/core/fb_draw.h:39:44: error: invalid use of undefined type 'struct fb_address'
39 | adr->address += (bits - adr->bits) / BITS_PER_BYTE;
| ^~
drivers/video/fbdev/core/fb_draw.h: At top level:
drivers/video/fbdev/core/fb_draw.h:50:62: warning: 'struct fb_address' declared inside parameter list will not be visible outside of this definition or declaration
50 | int offset, const struct fb_address *dst)
| ^~~~~~~~~~
drivers/video/fbdev/core/fb_draw.h: In function 'fb_modify_offset':
>> drivers/video/fbdev/core/fb_draw.h:52:9: error: implicit declaration of function 'fb_write_offset'; did you mean 'fb_modify_offset'? [-Wimplicit-function-declaration]
52 | fb_write_offset(fb_comp(val, fb_read_offset(offset, dst), mask), offset, dst);
| ^~~~~~~~~~~~~~~
| fb_modify_offset
>> drivers/video/fbdev/core/fb_draw.h:52:38: error: implicit declaration of function 'fb_read_offset'; did you mean 'fb_modify_offset'? [-Wimplicit-function-declaration]
52 | fb_write_offset(fb_comp(val, fb_read_offset(offset, dst), mask), offset, dst);
| ^~~~~~~~~~~~~~
| fb_modify_offset
drivers/video/fbdev/core/fb_draw.h: In function 'fb_reverse_bits_long':
>> drivers/video/fbdev/core/fb_draw.h:106:16: error: implicit declaration of function 'bitrev8x4' [-Wimplicit-function-declaration]
106 | return bitrev8x4(val);
| ^~~~~~~~~
drivers/video/fbdev/wmt_ge_rops.c: In function 'wmt_ge_fillrect':
>> drivers/video/fbdev/wmt_ge_rops.c:57:15: error: implicit declaration of function 'pixel_to_pat' [-Wimplicit-function-declaration]
57 | pat = pixel_to_pat(p->var.bits_per_pixel, fg);
| ^~~~~~~~~~~~
vim +18 drivers/video/fbdev/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
55 /*
56 * get current palette, if applicable for visual
57 *
58 * The pseudo color table entries (and colors) are right justified and in the
59 * same byte order as it's expected to be placed into a native ordered
60 * framebuffer memory. What that means:
61 *
62 * Expected bytes in framebuffer memory (in native order):
63 * RR GG BB RR GG BB RR GG BB ...
64 *
65 * Pseudo palette entry on little endian arch:
66 * RR | GG << 8 | BB << 16
67 *
68 * Pseudo palette entry on a big endian arch:
69 * RR << 16 | GG << 8 | BB
70 */
71 static inline const u32 *fb_palette(struct fb_info *info)
72 {
73 return (info->fix.visual == FB_VISUAL_TRUECOLOR ||
74 info->fix.visual == FB_VISUAL_DIRECTCOLOR) ? info->pseudo_palette : NULL;
75 }
76
77 /* move pixels right on screen when framebuffer is in native order */
78 static inline unsigned long fb_right(unsigned long value, int index)
79 {
80 #ifdef __LITTLE_ENDIAN
81 return value << index;
82 #else
83 return value >> index;
84 #endif
85 }
86
87 /* move pixels left on screen when framebuffer is in native order */
88 static inline unsigned long fb_left(unsigned long value, int index)
89 {
90 #ifdef __LITTLE_ENDIAN
91 return value >> index;
92 #else
93 return value << index;
94 #endif
95 }
96
97 /* reversal options */
98 struct fb_reverse {
99 bool byte, pixel;
100 };
101
102 /* reverse bits of each byte in a long */
103 static inline unsigned long fb_reverse_bits_long(unsigned long val)
104 {
105 #if defined(CONFIG_HAVE_ARCH_BITREVERSE) && BITS_PER_LONG == 32
> 106 return bitrev8x4(val);
107 #else
108 val = fb_comp(val >> 1, val << 1, ~0UL / 3);
109 val = fb_comp(val >> 2, val << 2, ~0UL / 5);
110 return fb_comp(val >> 4, val << 4, ~0UL / 17);
111 #endif
112 }
113
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-03-10 2:23 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-09 18:47 [PATCH RESEND 0/2] Refactoring the fbcon packed pixel drawing routines Zsolt Kajtar
2025-03-09 18:47 ` [PATCH RESEND 1/2] " Zsolt Kajtar
2025-03-10 1:00 ` kernel test robot
2025-03-10 2:22 ` kernel test robot [this message]
2025-03-10 15:56 ` kernel test robot
2025-03-09 18:47 ` [PATCH RESEND 2/2] Adding contact info for packed pixel drawing Zsolt Kajtar
2025-03-19 18:04 ` [PATCH RESEND 0/2] Refactoring the fbcon packed pixel drawing routines Helge Deller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202503101013.VkX1hbJx-lkp@intel.com \
--to=lkp@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-fbdev@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=soci@c64.rulez.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox