[drm-drm-misc:for-linux-next 1/1] drivers/video/fbdev/aty/atyfb_base.c:180:6: warning: no previous prototype for function 'aty_st_lcd'

1 view
Skip to first unread message

kernel test robot

unread,
Feb 22, 2021, 9:25:36 PM2/22/21
to Randy Dunlap, kbuil...@lists.01.org, clang-bu...@googlegroups.com, Daniel Vetter
tree: git://anongit.freedesktop.org/drm/drm-misc for-linux-next
head: bfa5782b9caa26f93f42ad79804e1f75a1ce9f18
commit: bfa5782b9caa26f93f42ad79804e1f75a1ce9f18 [1/1] fbdev: atyfb: add stubs for aty_{ld,st}_lcd()
config: arm64-randconfig-r025-20210222 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project c9439ca36342fb6013187d0a69aef92736951476)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
git remote add drm-drm-misc git://anongit.freedesktop.org/drm/drm-misc
git fetch --no-tags drm-drm-misc for-linux-next
git checkout bfa5782b9caa26f93f42ad79804e1f75a1ce9f18
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/video/fbdev/aty/atyfb_base.c:180:6: warning: no previous prototype for function 'aty_st_lcd' [-Wmissing-prototypes]
void aty_st_lcd(int index, u32 val, const struct atyfb_par *par)
^
drivers/video/fbdev/aty/atyfb_base.c:180:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void aty_st_lcd(int index, u32 val, const struct atyfb_par *par)
^
static
>> drivers/video/fbdev/aty/atyfb_base.c:183:5: warning: no previous prototype for function 'aty_ld_lcd' [-Wmissing-prototypes]
u32 aty_ld_lcd(int index, const struct atyfb_par *par)
^
drivers/video/fbdev/aty/atyfb_base.c:183:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
u32 aty_ld_lcd(int index, const struct atyfb_par *par)
^
static
2 warnings generated.


vim +/aty_st_lcd +180 drivers/video/fbdev/aty/atyfb_base.c

163
164 u32 aty_ld_lcd(int index, const struct atyfb_par *par)
165 {
166 if (M64_HAS(LT_LCD_REGS)) {
167 return aty_ld_le32(lt_lcd_regs[index], par);
168 } else {
169 unsigned long temp;
170
171 /* write addr byte */
172 temp = aty_ld_le32(LCD_INDEX, par);
173 aty_st_le32(LCD_INDEX, (temp & ~LCD_INDEX_MASK) | index, par);
174 /* read the register value */
175 return aty_ld_le32(LCD_DATA, par);
176 }
177 }
178 #else /* defined(CONFIG_PMAC_BACKLIGHT) || defined(CONFIG_FB_ATY_BACKLIGHT) \
179 defined(CONFIG_FB_ATY_GENERIC_LCD) */
> 180 void aty_st_lcd(int index, u32 val, const struct atyfb_par *par)
181 { }
182
> 183 u32 aty_ld_lcd(int index, const struct atyfb_par *par)
184 {
185 return 0;
186 }
187 #endif /* defined(CONFIG_PMAC_BACKLIGHT) || defined (CONFIG_FB_ATY_GENERIC_LCD) */
188

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuil...@lists.01.org
.config.gz

kernel test robot

unread,
Feb 24, 2021, 7:47:22 AM2/24/21
to Randy Dunlap, kbuil...@lists.01.org, clang-bu...@googlegroups.com, Linux Memory Management List, Daniel Vetter
Hi Randy,

FYI, the error/warning still remains.

tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 577c283560fe8a81a23a95654c6d13e8412d22f1
commit: bfa5782b9caa26f93f42ad79804e1f75a1ce9f18 [11942/12503] fbdev: atyfb: add stubs for aty_{ld,st}_lcd()
config: arm64-randconfig-r004-20210223 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f14a14dd2564703db02f80c00db8ae492b594f77)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=bfa5782b9caa26f93f42ad79804e1f75a1ce9f18
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
.config.gz

Randy Dunlap

unread,
Feb 24, 2021, 3:03:44 PM2/24/21
to kernel test robot, kbuil...@lists.01.org, clang-bu...@googlegroups.com, Linux Memory Management List, Daniel Vetter
These 2 functions are also used/usable (depending on CONFIG options) in
mach64_ct.c so they can't be static.

AFAIK, we don't make functions have different qualifiers depending on
config options.
--
~Randy

Nick Desaulniers

unread,
Feb 24, 2021, 3:43:06 PM2/24/21
to Randy Dunlap, kernel test robot, kbuil...@lists.01.org, clang-built-linux, Linux Memory Management List, Daniel Vetter
Is there a shared header included by both mach64_ct.c and atyfb_base.c
you could provide a declaration in, that way should the definition
change we'd catch such a change in order to not break the callers?
> --
> You received this message because you are subscribed to the Google Groups "Clang Built Linux" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-li...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/97716bb9-6aca-d7e6-e390-1b9d3a0b99a8%40infradead.org.



--
Thanks,
~Nick Desaulniers

Randy Dunlap

unread,
Feb 24, 2021, 4:03:00 PM2/24/21
to Nick Desaulniers, kernel test robot, kbuil...@lists.01.org, clang-built-linux, Linux Memory Management List, Daniel Vetter
atyfb.h:

#if defined(CONFIG_PMAC_BACKLIGHT) || defined (CONFIG_FB_ATY_GENERIC_LCD) || \
defined (CONFIG_FB_ATY_BACKLIGHT)
extern void aty_st_lcd(int index, u32 val, const struct atyfb_par *par);
extern u32 aty_ld_lcd(int index, const struct atyfb_par *par);
#endif

so it's already there unless the .config did not include those #ifdef CONFIG_s.
I'll recheck that.


--
~Randy

Randy Dunlap

unread,
Feb 24, 2021, 4:05:48 PM2/24/21
to Nick Desaulniers, kernel test robot, kbuil...@lists.01.org, clang-built-linux, Linux Memory Management List, Daniel Vetter
OK, none of those 3 kconfig symbols is set. I'll check again where the
usage is.


--
~Randy

Randy Dunlap

unread,
Feb 24, 2021, 4:18:39 PM2/24/21
to Nick Desaulniers, kernel test robot, kbuil...@lists.01.org, clang-built-linux, Linux Memory Management List, Daniel Vetter
I think I just need to make them always visible in atyfb.h.
I'll test that and then send a patch.


~Randy
Reply all
Reply to author
Forward
0 new messages