Re: [PATCH v2 3/3] gpio: bcm-kona: Drop unused pdev member in private data structure

From: kernel test robot
Date: Tue Jul 18 2023 - 15:28:02 EST


Hi Andy,

kernel test robot noticed the following build warnings:

[auto build test WARNING on brgl/gpio/for-next]
[also build test WARNING on linus/master v6.5-rc2 next-20230718]
[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#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Andy-Shevchenko/gpio-bcm-kona-remove-unneeded-platform_set_drvdata-call/20230718-174129
base: https://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git gpio/for-next
patch link: https://lore.kernel.org/r/20230717141845.41415-3-andriy.shevchenko%40linux.intel.com
patch subject: [PATCH v2 3/3] gpio: bcm-kona: Drop unused pdev member in private data structure
config: arm-allmodconfig (https://download.01.org/0day-ci/archive/20230719/202307190321.eqsdDbky-lkp@xxxxxxxxx/config)
compiler: arm-linux-gnueabi-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230719/202307190321.eqsdDbky-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307190321.eqsdDbky-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

drivers/gpio/gpio-bcm-kona.c: In function 'bcm_kona_gpio_set_debounce':
drivers/gpio/gpio-bcm-kona.c:265:17: error: implicit declaration of function 'dev_err' [-Werror=implicit-function-declaration]
265 | dev_err(chip->parent, "Debounce value %u not in range\n",
| ^~~~~~~
drivers/gpio/gpio-bcm-kona.c: At top level:
>> drivers/gpio/gpio-bcm-kona.c:556:39: warning: 'struct platform_device' declared inside parameter list will not be visible outside of this definition or declaration
556 | static int bcm_kona_gpio_probe(struct platform_device *pdev)
| ^~~~~~~~~~~~~~~
drivers/gpio/gpio-bcm-kona.c: In function 'bcm_kona_gpio_probe':
drivers/gpio/gpio-bcm-kona.c:558:35: error: invalid use of undefined type 'struct platform_device'
558 | struct device *dev = &pdev->dev;
| ^~
drivers/gpio/gpio-bcm-kona.c:565:21: error: implicit declaration of function 'devm_kzalloc' [-Werror=implicit-function-declaration]
565 | kona_gpio = devm_kzalloc(dev, sizeof(*kona_gpio), GFP_KERNEL);
| ^~~~~~~~~~~~
drivers/gpio/gpio-bcm-kona.c:565:19: warning: assignment to 'struct bcm_kona_gpio *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
565 | kona_gpio = devm_kzalloc(dev, sizeof(*kona_gpio), GFP_KERNEL);
| ^
drivers/gpio/gpio-bcm-kona.c:571:15: error: implicit declaration of function 'platform_irq_count' [-Werror=implicit-function-declaration]
571 | ret = platform_irq_count(pdev);
| ^~~~~~~~~~~~~~~~~~
drivers/gpio/gpio-bcm-kona.c:576:24: error: implicit declaration of function 'dev_err_probe' [-Werror=implicit-function-declaration]
576 | return dev_err_probe(dev, ret, "Couldn't determine GPIO banks\n");
| ^~~~~~~~~~~~~
drivers/gpio/gpio-bcm-kona.c:585:28: error: implicit declaration of function 'devm_kcalloc' [-Werror=implicit-function-declaration]
585 | kona_gpio->banks = devm_kcalloc(dev,
| ^~~~~~~~~~~~
drivers/gpio/gpio-bcm-kona.c:585:26: warning: assignment to 'struct bcm_kona_gpio_bank *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
585 | kona_gpio->banks = devm_kcalloc(dev,
| ^
drivers/gpio/gpio-bcm-kona.c:604:31: error: implicit declaration of function 'devm_platform_ioremap_resource' [-Werror=implicit-function-declaration]
604 | kona_gpio->reg_base = devm_platform_ioremap_resource(pdev, 0);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpio/gpio-bcm-kona.c:604:29: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
604 | kona_gpio->reg_base = devm_platform_ioremap_resource(pdev, 0);
| ^
drivers/gpio/gpio-bcm-kona.c:613:29: error: implicit declaration of function 'platform_get_irq' [-Werror=implicit-function-declaration]
613 | bank->irq = platform_get_irq(pdev, i);
| ^~~~~~~~~~~~~~~~
drivers/gpio/gpio-bcm-kona.c:622:9: error: implicit declaration of function 'dev_info' [-Werror=implicit-function-declaration]
622 | dev_info(&pdev->dev, "Setting up Kona GPIO\n");
| ^~~~~~~~
drivers/gpio/gpio-bcm-kona.c:622:23: error: invalid use of undefined type 'struct platform_device'
622 | dev_info(&pdev->dev, "Setting up Kona GPIO\n");
| ^~
drivers/gpio/gpio-bcm-kona.c: At top level:
drivers/gpio/gpio-bcm-kona.c:648:15: error: variable 'bcm_kona_gpio_driver' has initializer but incomplete type
648 | static struct platform_driver bcm_kona_gpio_driver = {
| ^~~~~~~~~~~~~~~
drivers/gpio/gpio-bcm-kona.c:649:10: error: 'struct platform_driver' has no member named 'driver'
649 | .driver = {
| ^~~~~~
drivers/gpio/gpio-bcm-kona.c:649:19: error: extra brace group at end of initializer
649 | .driver = {
| ^
drivers/gpio/gpio-bcm-kona.c:649:19: note: (near initialization for 'bcm_kona_gpio_driver')
drivers/gpio/gpio-bcm-kona.c:649:19: warning: excess elements in struct initializer
drivers/gpio/gpio-bcm-kona.c:649:19: note: (near initialization for 'bcm_kona_gpio_driver')
drivers/gpio/gpio-bcm-kona.c:653:10: error: 'struct platform_driver' has no member named 'probe'
653 | .probe = bcm_kona_gpio_probe,
| ^~~~~
drivers/gpio/gpio-bcm-kona.c:653:18: warning: excess elements in struct initializer
653 | .probe = bcm_kona_gpio_probe,
| ^~~~~~~~~~~~~~~~~~~
drivers/gpio/gpio-bcm-kona.c:653:18: note: (near initialization for 'bcm_kona_gpio_driver')
drivers/gpio/gpio-bcm-kona.c:655:1: warning: data definition has no type or storage class
655 | builtin_platform_driver(bcm_kona_gpio_driver);
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/gpio/gpio-bcm-kona.c:655:1: error: type defaults to 'int' in declaration of 'builtin_platform_driver' [-Werror=implicit-int]
drivers/gpio/gpio-bcm-kona.c:655:1: warning: parameter names (without types) in function declaration
drivers/gpio/gpio-bcm-kona.c:648:31: error: storage size of 'bcm_kona_gpio_driver' isn't known
648 | static struct platform_driver bcm_kona_gpio_driver = {
| ^~~~~~~~~~~~~~~~~~~~
drivers/gpio/gpio-bcm-kona.c:648:31: warning: 'bcm_kona_gpio_driver' defined but not used [-Wunused-variable]
cc1: some warnings being treated as errors

Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for SM_GCC_8350
Depends on [n]: COMMON_CLK [=y] && COMMON_CLK_QCOM [=m] && (ARM64 || COMPILE_TEST [=n])
Selected by [m]:
- SM_VIDEOCC_8350 [=m] && COMMON_CLK [=y] && COMMON_CLK_QCOM [=m]
WARNING: unmet direct dependencies detected for SM_GCC_8450
Depends on [n]: COMMON_CLK [=y] && COMMON_CLK_QCOM [=m] && (ARM64 || COMPILE_TEST [=n])
Selected by [m]:
- SM_GPUCC_8450 [=m] && COMMON_CLK [=y] && COMMON_CLK_QCOM [=m]
- SM_VIDEOCC_8450 [=m] && COMMON_CLK [=y] && COMMON_CLK_QCOM [=m]
WARNING: unmet direct dependencies detected for SM_GCC_8550
Depends on [n]: COMMON_CLK [=y] && COMMON_CLK_QCOM [=m] && (ARM64 || COMPILE_TEST [=n])
Selected by [m]:
- SM_GPUCC_8550 [=m] && COMMON_CLK [=y] && COMMON_CLK_QCOM [=m]
- SM_VIDEOCC_8550 [=m] && COMMON_CLK [=y] && COMMON_CLK_QCOM [=m]


vim +556 drivers/gpio/gpio-bcm-kona.c

757651e3d60e5b Markus Mayer 2013-09-10 555
757651e3d60e5b Markus Mayer 2013-09-10 @556 static int bcm_kona_gpio_probe(struct platform_device *pdev)
757651e3d60e5b Markus Mayer 2013-09-10 557 {
757651e3d60e5b Markus Mayer 2013-09-10 558 struct device *dev = &pdev->dev;
757651e3d60e5b Markus Mayer 2013-09-10 559 struct bcm_kona_gpio_bank *bank;
757651e3d60e5b Markus Mayer 2013-09-10 560 struct bcm_kona_gpio *kona_gpio;
757651e3d60e5b Markus Mayer 2013-09-10 561 struct gpio_chip *chip;
757651e3d60e5b Markus Mayer 2013-09-10 562 int ret;
757651e3d60e5b Markus Mayer 2013-09-10 563 int i;
757651e3d60e5b Markus Mayer 2013-09-10 564
757651e3d60e5b Markus Mayer 2013-09-10 565 kona_gpio = devm_kzalloc(dev, sizeof(*kona_gpio), GFP_KERNEL);
757651e3d60e5b Markus Mayer 2013-09-10 566 if (!kona_gpio)
757651e3d60e5b Markus Mayer 2013-09-10 567 return -ENOMEM;
757651e3d60e5b Markus Mayer 2013-09-10 568
757651e3d60e5b Markus Mayer 2013-09-10 569 kona_gpio->gpio_chip = template_chip;
757651e3d60e5b Markus Mayer 2013-09-10 570 chip = &kona_gpio->gpio_chip;
cfdca14c44a79b Peng Fan 2019-12-04 571 ret = platform_irq_count(pdev);
cfdca14c44a79b Peng Fan 2019-12-04 572 if (!ret) {
757651e3d60e5b Markus Mayer 2013-09-10 573 dev_err(dev, "Couldn't determine # GPIO banks\n");
757651e3d60e5b Markus Mayer 2013-09-10 574 return -ENOENT;
cfdca14c44a79b Peng Fan 2019-12-04 575 } else if (ret < 0) {
cff9d73f3d6a9f Krzysztof Kozlowski 2020-08-27 576 return dev_err_probe(dev, ret, "Couldn't determine GPIO banks\n");
757651e3d60e5b Markus Mayer 2013-09-10 577 }
cfdca14c44a79b Peng Fan 2019-12-04 578 kona_gpio->num_bank = ret;
cfdca14c44a79b Peng Fan 2019-12-04 579
757651e3d60e5b Markus Mayer 2013-09-10 580 if (kona_gpio->num_bank > GPIO_MAX_BANK_NUM) {
757651e3d60e5b Markus Mayer 2013-09-10 581 dev_err(dev, "Too many GPIO banks configured (max=%d)\n",
757651e3d60e5b Markus Mayer 2013-09-10 582 GPIO_MAX_BANK_NUM);
757651e3d60e5b Markus Mayer 2013-09-10 583 return -ENXIO;
757651e3d60e5b Markus Mayer 2013-09-10 584 }
a86854d0c599b3 Kees Cook 2018-06-12 585 kona_gpio->banks = devm_kcalloc(dev,
a86854d0c599b3 Kees Cook 2018-06-12 586 kona_gpio->num_bank,
a86854d0c599b3 Kees Cook 2018-06-12 587 sizeof(*kona_gpio->banks),
a86854d0c599b3 Kees Cook 2018-06-12 588 GFP_KERNEL);
757651e3d60e5b Markus Mayer 2013-09-10 589 if (!kona_gpio->banks)
757651e3d60e5b Markus Mayer 2013-09-10 590 return -ENOMEM;
757651e3d60e5b Markus Mayer 2013-09-10 591
45a541a610af81 Andy Shevchenko 2021-12-06 592 chip->parent = dev;
757651e3d60e5b Markus Mayer 2013-09-10 593 chip->ngpio = kona_gpio->num_bank * GPIO_PER_BANK;
757651e3d60e5b Markus Mayer 2013-09-10 594
71093d3e361dfb Andy Shevchenko 2023-07-17 595 kona_gpio->irq_domain = irq_domain_create_linear(dev_fwnode(dev),
757651e3d60e5b Markus Mayer 2013-09-10 596 chip->ngpio,
757651e3d60e5b Markus Mayer 2013-09-10 597 &bcm_kona_irq_ops,
757651e3d60e5b Markus Mayer 2013-09-10 598 kona_gpio);
757651e3d60e5b Markus Mayer 2013-09-10 599 if (!kona_gpio->irq_domain) {
757651e3d60e5b Markus Mayer 2013-09-10 600 dev_err(dev, "Couldn't allocate IRQ domain\n");
757651e3d60e5b Markus Mayer 2013-09-10 601 return -ENXIO;
757651e3d60e5b Markus Mayer 2013-09-10 602 }
757651e3d60e5b Markus Mayer 2013-09-10 603
72d8cb71547772 Enrico Weigelt, metux IT consult 2019-03-11 604 kona_gpio->reg_base = devm_platform_ioremap_resource(pdev, 0);
757651e3d60e5b Markus Mayer 2013-09-10 605 if (IS_ERR(kona_gpio->reg_base)) {
98f7d1b15e87c8 Tiezhu Yang 2020-05-22 606 ret = PTR_ERR(kona_gpio->reg_base);
757651e3d60e5b Markus Mayer 2013-09-10 607 goto err_irq_domain;
757651e3d60e5b Markus Mayer 2013-09-10 608 }
757651e3d60e5b Markus Mayer 2013-09-10 609
757651e3d60e5b Markus Mayer 2013-09-10 610 for (i = 0; i < kona_gpio->num_bank; i++) {
757651e3d60e5b Markus Mayer 2013-09-10 611 bank = &kona_gpio->banks[i];
757651e3d60e5b Markus Mayer 2013-09-10 612 bank->id = i;
757651e3d60e5b Markus Mayer 2013-09-10 613 bank->irq = platform_get_irq(pdev, i);
757651e3d60e5b Markus Mayer 2013-09-10 614 bank->kona_gpio = kona_gpio;
757651e3d60e5b Markus Mayer 2013-09-10 615 if (bank->irq < 0) {
757651e3d60e5b Markus Mayer 2013-09-10 616 dev_err(dev, "Couldn't get IRQ for bank %d", i);
757651e3d60e5b Markus Mayer 2013-09-10 617 ret = -ENOENT;
757651e3d60e5b Markus Mayer 2013-09-10 618 goto err_irq_domain;
757651e3d60e5b Markus Mayer 2013-09-10 619 }
757651e3d60e5b Markus Mayer 2013-09-10 620 }
757651e3d60e5b Markus Mayer 2013-09-10 621
23b4faa9a36257 Markus Mayer 2013-10-18 622 dev_info(&pdev->dev, "Setting up Kona GPIO\n");
757651e3d60e5b Markus Mayer 2013-09-10 623
757651e3d60e5b Markus Mayer 2013-09-10 624 bcm_kona_gpio_reset(kona_gpio);
757651e3d60e5b Markus Mayer 2013-09-10 625
0b89312379e574 Laxman Dewangan 2016-02-22 626 ret = devm_gpiochip_add_data(dev, chip, kona_gpio);
757651e3d60e5b Markus Mayer 2013-09-10 627 if (ret < 0) {
757651e3d60e5b Markus Mayer 2013-09-10 628 dev_err(dev, "Couldn't add GPIO chip -- %d\n", ret);
757651e3d60e5b Markus Mayer 2013-09-10 629 goto err_irq_domain;
757651e3d60e5b Markus Mayer 2013-09-10 630 }
757651e3d60e5b Markus Mayer 2013-09-10 631 for (i = 0; i < kona_gpio->num_bank; i++) {
757651e3d60e5b Markus Mayer 2013-09-10 632 bank = &kona_gpio->banks[i];
b34cc62084e8c4 Thomas Gleixner 2015-06-21 633 irq_set_chained_handler_and_data(bank->irq,
b34cc62084e8c4 Thomas Gleixner 2015-06-21 634 bcm_kona_gpio_irq_handler,
b34cc62084e8c4 Thomas Gleixner 2015-06-21 635 bank);
757651e3d60e5b Markus Mayer 2013-09-10 636 }
757651e3d60e5b Markus Mayer 2013-09-10 637
c69fcea57e9d2b Julia Cartwright 2017-03-09 638 raw_spin_lock_init(&kona_gpio->lock);
757651e3d60e5b Markus Mayer 2013-09-10 639
757651e3d60e5b Markus Mayer 2013-09-10 640 return 0;
757651e3d60e5b Markus Mayer 2013-09-10 641
757651e3d60e5b Markus Mayer 2013-09-10 642 err_irq_domain:
757651e3d60e5b Markus Mayer 2013-09-10 643 irq_domain_remove(kona_gpio->irq_domain);
757651e3d60e5b Markus Mayer 2013-09-10 644
757651e3d60e5b Markus Mayer 2013-09-10 645 return ret;
757651e3d60e5b Markus Mayer 2013-09-10 646 }
757651e3d60e5b Markus Mayer 2013-09-10 647

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki