Hi Emil, I love your patch! Yet something to improve: [auto build test ERROR on next-20211021] [also build test ERROR on v5.15-rc7] [cannot apply to robh/for-next clk/clk-next pza/reset/next linus/master v5.15-rc6 v5.15-rc5 v5.15-rc4] [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] url: https://github.com/0day-ci/linux/commits/Emil-Renner-Berthing/Basic-StarFive-JH7100-RISC-V-SoC-support/20211022-014605 base: 3196a52aff93186897f15f1a6c03220ce6523d82 config: alpha-randconfig-p002-20211028 (attached as .config) compiler: alpha-linux-gcc (GCC) 11.2.0 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 # https://github.com/0day-ci/linux/commit/2aa8169a8c5820ad5b70679777e7f6acd4fd4699 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Emil-Renner-Berthing/Basic-StarFive-JH7100-RISC-V-SoC-support/20211022-014605 git checkout 2aa8169a8c5820ad5b70679777e7f6acd4fd4699 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=alpha If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): drivers/pinctrl/pinctrl-starfive.c: In function 'starfive_dt_node_to_map': >> drivers/pinctrl/pinctrl-starfive.c:591:23: error: implicit declaration of function 'pinconf_generic_parse_dt_config'; did you mean 'pinconf_generic_dump_config'? [-Werror=implicit-function-declaration] 591 | ret = pinconf_generic_parse_dt_config(child, pctldev, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | pinconf_generic_dump_config cc1: some warnings being treated as errors Kconfig warnings: (for reference only) WARNING: unmet direct dependencies detected for OF_GPIO Depends on GPIOLIB && OF && HAS_IOMEM Selected by - PINCTRL_STARFIVE && PINCTRL && (SOC_STARFIVE || COMPILE_TEST WARNING: unmet direct dependencies detected for GPIO_SYSCON Depends on GPIOLIB && HAS_IOMEM && MFD_SYSCON && OF Selected by - GPIO_SAMA5D2_PIOBU && GPIOLIB && HAS_IOMEM && MFD_SYSCON && OF_GPIO vim +591 drivers/pinctrl/pinctrl-starfive.c 475 476 static int starfive_dt_node_to_map(struct pinctrl_dev *pctldev, 477 struct device_node *np, 478 struct pinctrl_map **maps, 479 unsigned int *num_maps) 480 { 481 struct starfive_pinctrl *sfp = pinctrl_dev_get_drvdata(pctldev); 482 struct device *dev = starfive_dev(sfp); 483 const char **pgnames; 484 struct pinctrl_map *map; 485 struct device_node *child; 486 const char *grpname; 487 int *pins; 488 u32 *pinmux; 489 int nmaps; 490 int ngroups; 491 int ret; 492 493 nmaps = 0; 494 ngroups = 0; 495 for_each_child_of_node(np, child) { 496 int npinmux = of_property_count_u32_elems(child, "pinmux"); 497 int npins = of_property_count_u32_elems(child, "pins"); 498 499 if (npinmux > 0 && npins > 0) { 500 dev_err(dev, "invalid pinctrl group %pOFn.%pOFn: %s\n", 501 np, child, "both pinmux and pins set"); 502 of_node_put(child); 503 return -EINVAL; 504 } 505 506 if (npinmux > 0) { 507 nmaps += 2; 508 } else if (npins > 0) { 509 nmaps += 1; 510 } else { 511 dev_err(dev, "invalid pinctrl group %pOFn.%pOFn: %s\n", 512 np, child, "neither pinmux nor pins set"); 513 of_node_put(child); 514 return -EINVAL; 515 } 516 ngroups += 1; 517 } 518 519 ret = -ENOMEM; 520 pgnames = devm_kcalloc(dev, ngroups, sizeof(*pgnames), GFP_KERNEL); 521 if (!pgnames) 522 return ret; 523 524 map = kcalloc(nmaps, sizeof(*map), GFP_KERNEL); 525 if (!map) 526 goto free_pgnames; 527 528 nmaps = 0; 529 ngroups = 0; 530 for_each_child_of_node(np, child) { 531 int npins; 532 int i; 533 534 ret = -ENOMEM; 535 grpname = devm_kasprintf(dev, GFP_KERNEL, "%s.%s", np->name, child->name); 536 if (!grpname) 537 goto put_child; 538 539 pgnames[ngroups++] = grpname; 540 541 if ((npins = of_property_count_u32_elems(child, "pinmux")) > 0) { 542 pins = devm_kcalloc(dev, npins, sizeof(*pins), GFP_KERNEL); 543 if (!pins) 544 goto free_grpname; 545 546 pinmux = devm_kcalloc(dev, npins, sizeof(*pinmux), GFP_KERNEL); 547 if (!pinmux) 548 goto free_pins; 549 550 for (i = 0; i < npins; i++) { 551 u32 v; 552 553 ret = of_property_read_u32_index(child, "pinmux", i, &v); 554 if (ret) 555 goto free_pinmux; 556 pins[i] = starfive_gpio_to_pin(sfp, starfive_pinmux_to_gpio(v)); 557 pinmux[i] = v; 558 } 559 560 map[nmaps].type = PIN_MAP_TYPE_MUX_GROUP; 561 map[nmaps].data.mux.function = np->name; 562 map[nmaps].data.mux.group = grpname; 563 nmaps += 1; 564 } else if ((npins = of_property_count_u32_elems(child, "pins")) > 0) { 565 pins = devm_kcalloc(dev, npins, sizeof(*pins), GFP_KERNEL); 566 if (!pins) 567 goto free_grpname; 568 569 pinmux = NULL; 570 571 for (i = 0; i < npins; i++) { 572 u32 v; 573 574 ret = of_property_read_u32_index(child, "pins", i, &v); 575 if (ret) 576 goto free_pins; 577 pins[i] = v; 578 } 579 } else { 580 ret = -EINVAL; 581 goto free_grpname; 582 } 583 584 ret = pinctrl_generic_add_group(pctldev, grpname, pins, npins, pinmux); 585 if (ret < 0) { 586 dev_err(dev, "error adding group %pOFn.%pOFn: %d\n", 587 np, child, ret); 588 goto free_pinmux; 589 } 590 > 591 ret = pinconf_generic_parse_dt_config(child, pctldev, 592 &map[nmaps].data.configs.configs, 593 &map[nmaps].data.configs.num_configs); 594 if (ret) { 595 dev_err(dev, "invalid pinctrl group %pOFn.%pOFn: %s\n", 596 np, child, "error parsing pin config"); 597 goto put_child; 598 } 599 600 /* don't create a map if there are no pinconf settings */ 601 if (map[nmaps].data.configs.num_configs == 0) 602 continue; 603 604 map[nmaps].type = PIN_MAP_TYPE_CONFIGS_GROUP; 605 map[nmaps].data.configs.group_or_pin = grpname; 606 nmaps += 1; 607 } 608 609 ret = pinmux_generic_add_function(pctldev, np->name, pgnames, ngroups, NULL); 610 if (ret < 0) { 611 dev_err(dev, "error adding function %pOFn: %d\n", np, ret); 612 goto free_map; 613 } 614 615 *maps = map; 616 *num_maps = nmaps; 617 return 0; 618 619 free_pinmux: 620 devm_kfree(dev, pinmux); 621 free_pins: 622 devm_kfree(dev, pins); 623 free_grpname: 624 devm_kfree(dev, grpname); 625 put_child: 626 of_node_put(child); 627 free_map: 628 pinctrl_utils_free_map(pctldev, map, nmaps); 629 free_pgnames: 630 devm_kfree(dev, pgnames); 631 return ret; 632 } 633 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip