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

From: kbuild test robot
Date: Thu Jun 01 2017 - 09:42:38 EST


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

Attachment: .config.gz
Description: application/gzip