[xlnx:master 16/47] drivers/soc/xilinx/xlnx_vcu_clk.c:264:8: note: in expansion of macro 'readl'

From: kbuild test robot <hidden>
Date: 2020-02-17 22:34:10
Also in: oe-kbuild-all

tree:   https://github.com/Xilinx/linux-xlnx master
head:   a1c718babcc65c64ae7c63b14bedada2e862d54c
commit: 639fb8f1219aca8e929a0d7e1c3d7e9fa84432f7 [16/47] soc: xilinx: Replace clk_{readl, writel} with {readl, writel}
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 7.5.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 639fb8f1219aca8e929a0d7e1c3d7e9fa84432f7
        # save the attached .config to linux build tree
        GCC_VERSION=7.5.0 make.cross ARCH=m68k 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <redacted>

All warnings (new ones prefixed by >>):

   drivers/soc/xilinx/xlnx_vcu_clk.c:122:16: error: field 'hw' has incomplete type
     struct clk_hw hw;
                   ^~
   drivers/soc/xilinx/xlnx_vcu_clk.c:245:18: warning: 'struct clk_div_table' declared inside parameter list will not be visible outside of this definition or declaration
        const struct clk_div_table *table, u8 width,
                     ^~~~~~~~~~~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c: In function 'xvcu_divider_get_val':
   drivers/soc/xilinx/xlnx_vcu_clk.c:250:14: error: 'CLK_DIVIDER_ROUND_CLOSEST' undeclared (first use in this function); did you mean 'DIV_ROUND_CLOSEST'?
     if (flags & CLK_DIVIDER_ROUND_CLOSEST)
                 ^~~~~~~~~~~~~~~~~~~~~~~~~
                 DIV_ROUND_CLOSEST
   drivers/soc/xilinx/xlnx_vcu_clk.c:250:14: note: each undeclared identifier is reported only once for each function it appears in
   drivers/soc/xilinx/xlnx_vcu_clk.c: In function 'xvcu_divider_recalc_rate':
   drivers/soc/xilinx/xlnx_vcu_clk.c:261:32: error: implicit declaration of function 'to_clk_divider'; did you mean 'of_clk_init'? [-Werror=implicit-function-declaration]
     struct clk_divider *divider = to_clk_divider(hw);
                                   ^~~~~~~~~~~~~~
                                   of_clk_init
   drivers/soc/xilinx/xlnx_vcu_clk.c:261:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
   In file included from include/linux/swab.h:5:0,
                    from include/uapi/linux/byteorder/big_endian.h:13,
                    from include/linux/byteorder/big_endian.h:5,
                    from arch/m68k/include/uapi/asm/byteorder.h:5,
                    from include/asm-generic/bitops/le.h:6,
                    from arch/m68k/include/asm/bitops.h:528,
                    from include/linux/bitops.h:19,
                    from include/linux/kernel.h:11,
                    from include/linux/clk.h:16,
                    from drivers/soc/xilinx/xlnx_vcu_clk.c:11:
   drivers/soc/xilinx/xlnx_vcu_clk.c:264:21: error: dereferencing pointer to incomplete type 'struct clk_divider'
     val = readl(divider->reg) >> divider->shift;
                        ^
   include/uapi/linux/swab.h:117:32: note: in definition of macro '__swab32'
     (__builtin_constant_p((__u32)(x)) ? \
                                   ^
quoted
include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
    #define le32_to_cpu __le32_to_cpu
                        ^~~~~~~~~~~~~
quoted
arch/m68k/include/asm/io_mm.h:370:26: note: in expansion of macro 'in_le32'
    #define readl(addr)      in_le32(addr)
                             ^~~~~~~
quoted
drivers/soc/xilinx/xlnx_vcu_clk.c:264:8: note: in expansion of macro 'readl'
     val = readl(divider->reg) >> divider->shift;
           ^~~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c:267:9: error: implicit declaration of function 'divider_recalc_rate'; did you mean 'xvcu_divider_recalc_rate'? [-Werror=implicit-function-declaration]
     return divider_recalc_rate(hw, parent_rate, val, divider->table,
            ^~~~~~~~~~~~~~~~~~~
            xvcu_divider_recalc_rate
   drivers/soc/xilinx/xlnx_vcu_clk.c: In function 'xvcu_divider_round_rate':
   drivers/soc/xilinx/xlnx_vcu_clk.c:274:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
     struct clk_divider *divider = to_clk_divider(hw);
                                   ^~~~~~~~~~~~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c:277:54: error: dereferencing pointer to incomplete type 'struct clk_divider'
     bestdiv = xvcu_divider_get_val(rate, *prate, divider->table,
                                                         ^~
   drivers/soc/xilinx/xlnx_vcu_clk.c: In function 'xvcu_divider_set_rate':
   drivers/soc/xilinx/xlnx_vcu_clk.c:288:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
     struct clk_divider *divider = to_clk_divider(hw);
                                   ^~~~~~~~~~~~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c:292:57: error: dereferencing pointer to incomplete type 'struct clk_divider'
     value = xvcu_divider_get_val(rate, parent_rate, divider->table,
                                                            ^~
   drivers/soc/xilinx/xlnx_vcu_clk.c: At top level:
   drivers/soc/xilinx/xlnx_vcu_clk.c:305:21: error: variable 'xvcu_divider_ops' has initializer but incomplete type
    static const struct clk_ops xvcu_divider_ops = {
                        ^~~~~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c:306:3: error: 'const struct clk_ops' has no member named 'recalc_rate'
     .recalc_rate = xvcu_divider_recalc_rate,
      ^~~~~~~~~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c:306:17: warning: excess elements in struct initializer
     .recalc_rate = xvcu_divider_recalc_rate,
                    ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c:306:17: note: (near initialization for 'xvcu_divider_ops')
   drivers/soc/xilinx/xlnx_vcu_clk.c:307:3: error: 'const struct clk_ops' has no member named 'round_rate'
     .round_rate = xvcu_divider_round_rate,
      ^~~~~~~~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c:307:16: warning: excess elements in struct initializer
     .round_rate = xvcu_divider_round_rate,
                   ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c:307:16: note: (near initialization for 'xvcu_divider_ops')
   drivers/soc/xilinx/xlnx_vcu_clk.c:308:3: error: 'const struct clk_ops' has no member named 'set_rate'
     .set_rate = xvcu_divider_set_rate,
      ^~~~~~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c:308:14: warning: excess elements in struct initializer
     .set_rate = xvcu_divider_set_rate,
                 ^~~~~~~~~~~~~~~~~~~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c:308:14: note: (near initialization for 'xvcu_divider_ops')
   drivers/soc/xilinx/xlnx_vcu_clk.c: In function 'xvcu_register_divider':
   drivers/soc/xilinx/xlnx_vcu_clk.c:337:23: error: storage size of 'init' isn't known
     struct clk_init_data init;
                          ^~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c:341:23: error: dereferencing pointer to incomplete type 'struct clk_divider'
     div = kzalloc(sizeof(*div), GFP_KERNEL);
                          ^~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c:347:23: error: 'CLK_IS_BASIC' undeclared (first use in this function); did you mean 'CLOCKS_MASK'?
     init.flags = flags | CLK_IS_BASIC;
                          ^~~~~~~~~~~~
                          CLOCKS_MASK
   drivers/soc/xilinx/xlnx_vcu_clk.c:361:8: error: implicit declaration of function 'clk_hw_register'; did you mean 'class_register'? [-Werror=implicit-function-declaration]
     ret = clk_hw_register(dev, hw);
           ^~~~~~~~~~~~~~~
           class_register
   drivers/soc/xilinx/xlnx_vcu_clk.c:337:23: warning: unused variable 'init' [-Wunused-variable]
     struct clk_init_data init;
                          ^~~~
   In file included from include/linux/err.h:5:0,
                    from include/linux/clk.h:15,
                    from drivers/soc/xilinx/xlnx_vcu_clk.c:11:
   drivers/soc/xilinx/xlnx_vcu_clk.c: In function 'xvcu_pll_is_enabled':
   include/linux/kernel.h:997:32: error: dereferencing pointer to incomplete type 'struct clk_hw'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                                   ^~~~~~
   include/linux/compiler.h:335:18: note: in definition of macro '__compiletime_assert'
      int __cond = !(condition);    \
                     ^~~~~~~~~
   include/linux/compiler.h:358:2: note: in expansion of macro '_compiletime_assert'
     _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
     ^~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:45:37: note: in expansion of macro 'compiletime_assert'
    #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                        ^~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:997:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
     ^~~~~~~~~~~~~~~~
   include/linux/kernel.h:997:20: note: in expansion of macro '__same_type'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                       ^~~~~~~~~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c:82:25: note: in expansion of macro 'container_of'
    #define to_vcu_pll(_hw) container_of(_hw, struct vcu_pll, hw)
                            ^~~~~~~~~~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c:454:24: note: in expansion of macro 'to_vcu_pll'
     struct vcu_pll *pll = to_vcu_pll(hw);
                           ^~~~~~~~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c: At top level:
   drivers/soc/xilinx/xlnx_vcu_clk.c:649:21: error: variable 'vcu_pll_ops' has initializer but incomplete type
    static const struct clk_ops vcu_pll_ops = {
                        ^~~~~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c:650:3: error: 'const struct clk_ops' has no member named 'enable'
     .enable = xvcu_pll_enable,
      ^~~~~~
   drivers/soc/xilinx/xlnx_vcu_clk.c:650:12: warning: excess elements in struct initializer
     .enable = xvcu_pll_enable,
--
   drivers/soc//xilinx/xlnx_vcu_clk.c:122:16: error: field 'hw' has incomplete type
     struct clk_hw hw;
                   ^~
   drivers/soc//xilinx/xlnx_vcu_clk.c:245:18: warning: 'struct clk_div_table' declared inside parameter list will not be visible outside of this definition or declaration
        const struct clk_div_table *table, u8 width,
                     ^~~~~~~~~~~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c: In function 'xvcu_divider_get_val':
   drivers/soc//xilinx/xlnx_vcu_clk.c:250:14: error: 'CLK_DIVIDER_ROUND_CLOSEST' undeclared (first use in this function); did you mean 'DIV_ROUND_CLOSEST'?
     if (flags & CLK_DIVIDER_ROUND_CLOSEST)
                 ^~~~~~~~~~~~~~~~~~~~~~~~~
                 DIV_ROUND_CLOSEST
   drivers/soc//xilinx/xlnx_vcu_clk.c:250:14: note: each undeclared identifier is reported only once for each function it appears in
   drivers/soc//xilinx/xlnx_vcu_clk.c: In function 'xvcu_divider_recalc_rate':
   drivers/soc//xilinx/xlnx_vcu_clk.c:261:32: error: implicit declaration of function 'to_clk_divider'; did you mean 'of_clk_init'? [-Werror=implicit-function-declaration]
     struct clk_divider *divider = to_clk_divider(hw);
                                   ^~~~~~~~~~~~~~
                                   of_clk_init
   drivers/soc//xilinx/xlnx_vcu_clk.c:261:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
   In file included from include/linux/swab.h:5:0,
                    from include/uapi/linux/byteorder/big_endian.h:13,
                    from include/linux/byteorder/big_endian.h:5,
                    from arch/m68k/include/uapi/asm/byteorder.h:5,
                    from include/asm-generic/bitops/le.h:6,
                    from arch/m68k/include/asm/bitops.h:528,
                    from include/linux/bitops.h:19,
                    from include/linux/kernel.h:11,
                    from include/linux/clk.h:16,
                    from drivers/soc//xilinx/xlnx_vcu_clk.c:11:
   drivers/soc//xilinx/xlnx_vcu_clk.c:264:21: error: dereferencing pointer to incomplete type 'struct clk_divider'
     val = readl(divider->reg) >> divider->shift;
                        ^
   include/uapi/linux/swab.h:117:32: note: in definition of macro '__swab32'
     (__builtin_constant_p((__u32)(x)) ? \
                                   ^
quoted
include/linux/byteorder/generic.h:89:21: note: in expansion of macro '__le32_to_cpu'
    #define le32_to_cpu __le32_to_cpu
                        ^~~~~~~~~~~~~
quoted
arch/m68k/include/asm/io_mm.h:370:26: note: in expansion of macro 'in_le32'
    #define readl(addr)      in_le32(addr)
                             ^~~~~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c:264:8: note: in expansion of macro 'readl'
     val = readl(divider->reg) >> divider->shift;
           ^~~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c:267:9: error: implicit declaration of function 'divider_recalc_rate'; did you mean 'xvcu_divider_recalc_rate'? [-Werror=implicit-function-declaration]
     return divider_recalc_rate(hw, parent_rate, val, divider->table,
            ^~~~~~~~~~~~~~~~~~~
            xvcu_divider_recalc_rate
   drivers/soc//xilinx/xlnx_vcu_clk.c: In function 'xvcu_divider_round_rate':
   drivers/soc//xilinx/xlnx_vcu_clk.c:274:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
     struct clk_divider *divider = to_clk_divider(hw);
                                   ^~~~~~~~~~~~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c:277:54: error: dereferencing pointer to incomplete type 'struct clk_divider'
     bestdiv = xvcu_divider_get_val(rate, *prate, divider->table,
                                                         ^~
   drivers/soc//xilinx/xlnx_vcu_clk.c: In function 'xvcu_divider_set_rate':
   drivers/soc//xilinx/xlnx_vcu_clk.c:288:32: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
     struct clk_divider *divider = to_clk_divider(hw);
                                   ^~~~~~~~~~~~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c:292:57: error: dereferencing pointer to incomplete type 'struct clk_divider'
     value = xvcu_divider_get_val(rate, parent_rate, divider->table,
                                                            ^~
   drivers/soc//xilinx/xlnx_vcu_clk.c: At top level:
   drivers/soc//xilinx/xlnx_vcu_clk.c:305:21: error: variable 'xvcu_divider_ops' has initializer but incomplete type
    static const struct clk_ops xvcu_divider_ops = {
                        ^~~~~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c:306:3: error: 'const struct clk_ops' has no member named 'recalc_rate'
     .recalc_rate = xvcu_divider_recalc_rate,
      ^~~~~~~~~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c:306:17: warning: excess elements in struct initializer
     .recalc_rate = xvcu_divider_recalc_rate,
                    ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c:306:17: note: (near initialization for 'xvcu_divider_ops')
   drivers/soc//xilinx/xlnx_vcu_clk.c:307:3: error: 'const struct clk_ops' has no member named 'round_rate'
     .round_rate = xvcu_divider_round_rate,
      ^~~~~~~~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c:307:16: warning: excess elements in struct initializer
     .round_rate = xvcu_divider_round_rate,
                   ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c:307:16: note: (near initialization for 'xvcu_divider_ops')
   drivers/soc//xilinx/xlnx_vcu_clk.c:308:3: error: 'const struct clk_ops' has no member named 'set_rate'
     .set_rate = xvcu_divider_set_rate,
      ^~~~~~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c:308:14: warning: excess elements in struct initializer
     .set_rate = xvcu_divider_set_rate,
                 ^~~~~~~~~~~~~~~~~~~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c:308:14: note: (near initialization for 'xvcu_divider_ops')
   drivers/soc//xilinx/xlnx_vcu_clk.c: In function 'xvcu_register_divider':
   drivers/soc//xilinx/xlnx_vcu_clk.c:337:23: error: storage size of 'init' isn't known
     struct clk_init_data init;
                          ^~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c:341:23: error: dereferencing pointer to incomplete type 'struct clk_divider'
     div = kzalloc(sizeof(*div), GFP_KERNEL);
                          ^~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c:347:23: error: 'CLK_IS_BASIC' undeclared (first use in this function); did you mean 'CLOCKS_MASK'?
     init.flags = flags | CLK_IS_BASIC;
                          ^~~~~~~~~~~~
                          CLOCKS_MASK
   drivers/soc//xilinx/xlnx_vcu_clk.c:361:8: error: implicit declaration of function 'clk_hw_register'; did you mean 'class_register'? [-Werror=implicit-function-declaration]
     ret = clk_hw_register(dev, hw);
           ^~~~~~~~~~~~~~~
           class_register
   drivers/soc//xilinx/xlnx_vcu_clk.c:337:23: warning: unused variable 'init' [-Wunused-variable]
     struct clk_init_data init;
                          ^~~~
   In file included from include/linux/err.h:5:0,
                    from include/linux/clk.h:15,
                    from drivers/soc//xilinx/xlnx_vcu_clk.c:11:
   drivers/soc//xilinx/xlnx_vcu_clk.c: In function 'xvcu_pll_is_enabled':
   include/linux/kernel.h:997:32: error: dereferencing pointer to incomplete type 'struct clk_hw'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                                   ^~~~~~
   include/linux/compiler.h:335:18: note: in definition of macro '__compiletime_assert'
      int __cond = !(condition);    \
                     ^~~~~~~~~
   include/linux/compiler.h:358:2: note: in expansion of macro '_compiletime_assert'
     _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
     ^~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:45:37: note: in expansion of macro 'compiletime_assert'
    #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                        ^~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:997:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
     ^~~~~~~~~~~~~~~~
   include/linux/kernel.h:997:20: note: in expansion of macro '__same_type'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                       ^~~~~~~~~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c:82:25: note: in expansion of macro 'container_of'
    #define to_vcu_pll(_hw) container_of(_hw, struct vcu_pll, hw)
                            ^~~~~~~~~~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c:454:24: note: in expansion of macro 'to_vcu_pll'
     struct vcu_pll *pll = to_vcu_pll(hw);
                           ^~~~~~~~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c: At top level:
   drivers/soc//xilinx/xlnx_vcu_clk.c:649:21: error: variable 'vcu_pll_ops' has initializer but incomplete type
    static const struct clk_ops vcu_pll_ops = {
                        ^~~~~~~
   drivers/soc//xilinx/xlnx_vcu_clk.c:650:3: error: 'const struct clk_ops' has no member named 'enable'
     .enable = xvcu_pll_enable,

vim +/readl +264 drivers/soc/xilinx/xlnx_vcu_clk.c

   257	
   258	static unsigned long xvcu_divider_recalc_rate(struct clk_hw *hw,
   259						      unsigned long parent_rate)
   260	{
   261		struct clk_divider *divider = to_clk_divider(hw);
   262		unsigned int val;
   263	
 > 264		val = readl(divider->reg) >> divider->shift;
   265		val &= div_mask(divider->width);
   266	
   267		return divider_recalc_rate(hw, parent_rate, val, divider->table,
   268					   divider->flags, divider->width);
   269	}
   270	

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

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help