[PATCH v2 1/2] clk: bcm2835: Limit PCM clock to OSC and PLLD_PER

kbuild test robot lkp at intel.com
Thu Jun 1 06:41:19 PDT 2017


Hi Phil,

[auto build test ERROR on clk/clk-next]
[also build test ERROR on v4.12-rc3 next-20170601]
[cannot apply to linux-rpi/for-rpi-next]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Phil-Elwell/clk-bcm2835-Limit-PCM-clock-to-OSC-and-PLLD_PER/20170601-185211
base:   https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git clk-next
config: arm64-defconfig (attached as .config)
compiler: aarch64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=arm64 

All error/warnings (new ones prefixed by >>):

>> drivers/clk//bcm/clk-bcm2835.c:1540:32: error: 'bcm2835_clock_pcm_per_parents' undeclared here (not in a function)
     .num_mux_parents = ARRAY_SIZE(bcm2835_clock_pcm_per_parents), \
                                   ^
   drivers/clk//bcm/clk-bcm2835.c:1473:16: note: in definition of macro '_REGISTER'
           .data = __VA_ARGS__ }
                   ^~~~~~~~~~~
>> drivers/clk//bcm/clk-bcm2835.c:1539:31: note: in expansion of macro 'REGISTER_CLK'
    #define REGISTER_PCM_CLK(...) REGISTER_CLK(    \
                                  ^~~~~~~~~~~~
>> drivers/clk//bcm/clk-bcm2835.c:1540:21: note: in expansion of macro 'ARRAY_SIZE'
     .num_mux_parents = ARRAY_SIZE(bcm2835_clock_pcm_per_parents), \
                        ^~~~~~~~~~
>> drivers/clk//bcm/clk-bcm2835.c:2021:24: note: in expansion of macro 'REGISTER_PCM_CLK'
     [BCM2835_CLOCK_PCM] = REGISTER_PCM_CLK(
                           ^~~~~~~~~~~~~~~~
   include/linux/bug.h:37:45: error: bit-field '<anonymous>' width not an integer constant
    #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
                                                ^
   drivers/clk//bcm/clk-bcm2835.c:1473:16: note: in definition of macro '_REGISTER'
           .data = __VA_ARGS__ }
                   ^~~~~~~~~~~
>> drivers/clk//bcm/clk-bcm2835.c:1539:31: note: in expansion of macro 'REGISTER_CLK'
    #define REGISTER_PCM_CLK(...) REGISTER_CLK(    \
                                  ^~~~~~~~~~~~
   include/linux/compiler-gcc.h:64:28: note: in expansion of macro 'BUILD_BUG_ON_ZERO'
    #define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
                               ^~~~~~~~~~~~~~~~~
   include/linux/kernel.h:59:59: note: in expansion of macro '__must_be_array'
    #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
                                                              ^~~~~~~~~~~~~~~
>> drivers/clk//bcm/clk-bcm2835.c:1540:21: note: in expansion of macro 'ARRAY_SIZE'
     .num_mux_parents = ARRAY_SIZE(bcm2835_clock_pcm_per_parents), \
                        ^~~~~~~~~~
>> drivers/clk//bcm/clk-bcm2835.c:2021:24: note: in expansion of macro 'REGISTER_PCM_CLK'
     [BCM2835_CLOCK_PCM] = REGISTER_PCM_CLK(
                           ^~~~~~~~~~~~~~~~

vim +/bcm2835_clock_pcm_per_parents +1540 drivers/clk//bcm/clk-bcm2835.c

  1467		bcm2835_clk_register clk_register;
  1468		const void *data;
  1469	};
  1470	
  1471	/* assignment helper macros for different clock types */
  1472	#define _REGISTER(f, ...) { .clk_register = (bcm2835_clk_register)f, \
> 1473				    .data = __VA_ARGS__ }
  1474	#define REGISTER_PLL(...)	_REGISTER(&bcm2835_register_pll,	\
  1475						  &(struct bcm2835_pll_data)	\
  1476						  {__VA_ARGS__})
  1477	#define REGISTER_PLL_DIV(...)	_REGISTER(&bcm2835_register_pll_divider, \
  1478						  &(struct bcm2835_pll_divider_data) \
  1479						  {__VA_ARGS__})
  1480	#define REGISTER_CLK(...)	_REGISTER(&bcm2835_register_clock,	\
  1481						  &(struct bcm2835_clock_data)	\
  1482						  {__VA_ARGS__})
  1483	#define REGISTER_GATE(...)	_REGISTER(&bcm2835_register_gate,	\
  1484						  &(struct bcm2835_gate_data)	\
  1485						  {__VA_ARGS__})
  1486	
  1487	/* parent mux arrays plus helper macros */
  1488	
  1489	/* main oscillator parent mux */
  1490	static const char *const bcm2835_clock_osc_parents[] = {
  1491		"gnd",
  1492		"xosc",
  1493		"testdebug0",
  1494		"testdebug1"
  1495	};
  1496	
  1497	#define REGISTER_OSC_CLK(...)	REGISTER_CLK(				\
  1498		.num_mux_parents = ARRAY_SIZE(bcm2835_clock_osc_parents),	\
  1499		.parents = bcm2835_clock_osc_parents,				\
  1500		__VA_ARGS__)
  1501	
  1502	/* main peripherial parent mux */
  1503	static const char *const bcm2835_clock_per_parents[] = {
  1504		"gnd",
  1505		"xosc",
  1506		"testdebug0",
  1507		"testdebug1",
  1508		"plla_per",
  1509		"pllc_per",
  1510		"plld_per",
  1511		"pllh_aux",
  1512	};
  1513	
  1514	#define REGISTER_PER_CLK(...)	REGISTER_CLK(				\
  1515		.num_mux_parents = ARRAY_SIZE(bcm2835_clock_per_parents),	\
  1516		.parents = bcm2835_clock_per_parents,				\
  1517		__VA_ARGS__)
  1518	
  1519	/*
  1520	 * Restrict clock sources for the PCM peripheral to the oscillator and
  1521	 * PLLD_PER because other source may have varying rates or be switched
  1522	 * off.
  1523	 *
  1524	 * Prevent other sources from being selected by replacing their names in
  1525	 * the list of potential parents with dummy entries (entry index is
  1526	 * significant).
  1527	 */
  1528	static const char *const bcm2835_pcm_per_parents[] = {
  1529		"-",
  1530		"xosc",
  1531		"-",
  1532		"-",
  1533		"-",
  1534		"-",
  1535		"plld_per",
  1536		"-",
  1537	};
  1538	
> 1539	#define REGISTER_PCM_CLK(...)	REGISTER_CLK(				\
> 1540		.num_mux_parents = ARRAY_SIZE(bcm2835_clock_pcm_per_parents),	\
  1541		.parents = bcm2835_clock_pcm_per_parents,			\
  1542		__VA_ARGS__)
  1543	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 35149 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-rpi-kernel/attachments/20170601/798cbe8d/attachment.gz>


More information about the linux-rpi-kernel mailing list