linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 1/3] gpio: bcm-kona: Make driver OF-independent
@ 2023-07-17 14:18 Andy Shevchenko
  2023-07-17 14:18 ` [PATCH v2 2/3] gpio: bcm-kona: remove unneeded platform_set_drvdata() call Andy Shevchenko
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Andy Shevchenko @ 2023-07-17 14:18 UTC (permalink / raw)
  To: Bartosz Golaszewski, Andy Shevchenko, linux-gpio, linux-kernel
  Cc: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Ray Jui,
	Broadcom internal kernel review list, Florian Fainelli,
	Scott Branden

There is nothing in the driver that requires OF APIs,
make the driver OF independent.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
v2: new patch
 drivers/gpio/Kconfig         |  2 +-
 drivers/gpio/gpio-bcm-kona.c | 20 +++++++-------------
 2 files changed, 8 insertions(+), 14 deletions(-)

diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 638f0e771105..a70622d32a3b 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -191,7 +191,7 @@ config GPIO_RASPBERRYPI_EXP
 
 config GPIO_BCM_KONA
 	bool "Broadcom Kona GPIO"
-	depends on OF_GPIO && (ARCH_BCM_MOBILE || COMPILE_TEST)
+	depends on ARCH_BCM_MOBILE || COMPILE_TEST
 	help
 	  Turn on GPIO support for Broadcom "Kona" chips.
 
diff --git a/drivers/gpio/gpio-bcm-kona.c b/drivers/gpio/gpio-bcm-kona.c
index 70770429ba48..0aa7d710509d 100644
--- a/drivers/gpio/gpio-bcm-kona.c
+++ b/drivers/gpio/gpio-bcm-kona.c
@@ -8,12 +8,13 @@
 
 #include <linux/bitops.h>
 #include <linux/err.h>
-#include <linux/io.h>
 #include <linux/gpio/driver.h>
-#include <linux/of_device.h>
 #include <linux/init.h>
+#include <linux/io.h>
 #include <linux/irqdomain.h>
 #include <linux/irqchip/chained_irq.h>
+#include <linux/mod_devicetable.h>
+#include <linux/property.h>
 
 #define BCM_GPIO_PASSWD				0x00a5a501
 #define GPIO_PER_BANK				32
@@ -556,19 +557,12 @@ static void bcm_kona_gpio_reset(struct bcm_kona_gpio *kona_gpio)
 static int bcm_kona_gpio_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
-	const struct of_device_id *match;
 	struct bcm_kona_gpio_bank *bank;
 	struct bcm_kona_gpio *kona_gpio;
 	struct gpio_chip *chip;
 	int ret;
 	int i;
 
-	match = of_match_device(bcm_kona_gpio_of_match, dev);
-	if (!match) {
-		dev_err(dev, "Failed to find gpio controller\n");
-		return -ENODEV;
-	}
-
 	kona_gpio = devm_kzalloc(dev, sizeof(*kona_gpio), GFP_KERNEL);
 	if (!kona_gpio)
 		return -ENOMEM;
@@ -601,10 +595,10 @@ static int bcm_kona_gpio_probe(struct platform_device *pdev)
 	chip->parent = dev;
 	chip->ngpio = kona_gpio->num_bank * GPIO_PER_BANK;
 
-	kona_gpio->irq_domain = irq_domain_add_linear(dev->of_node,
-						      chip->ngpio,
-						      &bcm_kona_irq_ops,
-						      kona_gpio);
+	kona_gpio->irq_domain = irq_domain_create_linear(dev_fwnode(dev),
+							 chip->ngpio,
+							 &bcm_kona_irq_ops,
+							 kona_gpio);
 	if (!kona_gpio->irq_domain) {
 		dev_err(dev, "Couldn't allocate IRQ domain\n");
 		return -ENXIO;
-- 
2.40.0.1.gaa8946217a0b


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v2 2/3] gpio: bcm-kona: remove unneeded platform_set_drvdata() call
  2023-07-17 14:18 [PATCH v2 1/3] gpio: bcm-kona: Make driver OF-independent Andy Shevchenko
@ 2023-07-17 14:18 ` Andy Shevchenko
  2023-07-17 14:18 ` [PATCH v2 3/3] gpio: bcm-kona: Drop unused pdev member in private data structure Andy Shevchenko
  2023-07-18 16:00 ` [PATCH v2 1/3] gpio: bcm-kona: Make driver OF-independent kernel test robot
  2 siblings, 0 replies; 5+ messages in thread
From: Andy Shevchenko @ 2023-07-17 14:18 UTC (permalink / raw)
  To: Bartosz Golaszewski, Andy Shevchenko, linux-gpio, linux-kernel
  Cc: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Ray Jui,
	Broadcom internal kernel review list, Florian Fainelli,
	Scott Branden, Andrei Coardos, Alexandru Ardelean

From: Andrei Coardos <aboutphysycs@gmail.com>

The platform_set_drvdata() call was never used, ever since the driver was
originally added.
It looks like this copy+paste left-over. Possibly the author copied from a
driver that had this line, but also had a remove hook.

Reviewed-by: Alexandru Ardelean <alex@shruggie.ro>
Signed-off-by: Andrei Coardos <aboutphysycs@gmail.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
v2: no changes
 drivers/gpio/gpio-bcm-kona.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/gpio/gpio-bcm-kona.c b/drivers/gpio/gpio-bcm-kona.c
index 0aa7d710509d..9af1549ee0df 100644
--- a/drivers/gpio/gpio-bcm-kona.c
+++ b/drivers/gpio/gpio-bcm-kona.c
@@ -591,7 +591,6 @@ static int bcm_kona_gpio_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	kona_gpio->pdev = pdev;
-	platform_set_drvdata(pdev, kona_gpio);
 	chip->parent = dev;
 	chip->ngpio = kona_gpio->num_bank * GPIO_PER_BANK;
 
-- 
2.40.0.1.gaa8946217a0b


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v2 3/3] gpio: bcm-kona: Drop unused pdev member in private data structure
  2023-07-17 14:18 [PATCH v2 1/3] gpio: bcm-kona: Make driver OF-independent Andy Shevchenko
  2023-07-17 14:18 ` [PATCH v2 2/3] gpio: bcm-kona: remove unneeded platform_set_drvdata() call Andy Shevchenko
@ 2023-07-17 14:18 ` Andy Shevchenko
  2023-07-18 19:27   ` kernel test robot
  2023-07-18 16:00 ` [PATCH v2 1/3] gpio: bcm-kona: Make driver OF-independent kernel test robot
  2 siblings, 1 reply; 5+ messages in thread
From: Andy Shevchenko @ 2023-07-17 14:18 UTC (permalink / raw)
  To: Bartosz Golaszewski, Andy Shevchenko, linux-gpio, linux-kernel
  Cc: Linus Walleij, Bartosz Golaszewski, Andy Shevchenko, Ray Jui,
	Broadcom internal kernel review list, Florian Fainelli,
	Scott Branden

The pdev member is assigned and not used, drop it.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
v2: new patch
 drivers/gpio/gpio-bcm-kona.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/gpio/gpio-bcm-kona.c b/drivers/gpio/gpio-bcm-kona.c
index 9af1549ee0df..0e3fdb42b9ed 100644
--- a/drivers/gpio/gpio-bcm-kona.c
+++ b/drivers/gpio/gpio-bcm-kona.c
@@ -63,7 +63,6 @@ struct bcm_kona_gpio {
 	struct gpio_chip gpio_chip;
 	struct irq_domain *irq_domain;
 	struct bcm_kona_gpio_bank *banks;
-	struct platform_device *pdev;
 };
 
 struct bcm_kona_gpio_bank {
@@ -590,7 +589,6 @@ static int bcm_kona_gpio_probe(struct platform_device *pdev)
 	if (!kona_gpio->banks)
 		return -ENOMEM;
 
-	kona_gpio->pdev = pdev;
 	chip->parent = dev;
 	chip->ngpio = kona_gpio->num_bank * GPIO_PER_BANK;
 
-- 
2.40.0.1.gaa8946217a0b


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 1/3] gpio: bcm-kona: Make driver OF-independent
  2023-07-17 14:18 [PATCH v2 1/3] gpio: bcm-kona: Make driver OF-independent Andy Shevchenko
  2023-07-17 14:18 ` [PATCH v2 2/3] gpio: bcm-kona: remove unneeded platform_set_drvdata() call Andy Shevchenko
  2023-07-17 14:18 ` [PATCH v2 3/3] gpio: bcm-kona: Drop unused pdev member in private data structure Andy Shevchenko
@ 2023-07-18 16:00 ` kernel test robot
  2 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2023-07-18 16:00 UTC (permalink / raw)
  To: Andy Shevchenko, Bartosz Golaszewski, linux-gpio, linux-kernel
  Cc: oe-kbuild-all, Linus Walleij, Ray Jui,
	Broadcom internal kernel review list, Florian Fainelli,
	Scott Branden

Hi Andy,

kernel test robot noticed the following build errors:

[auto build test ERROR on brgl/gpio/for-next]
[also build test ERROR 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-1-andriy.shevchenko%40linux.intel.com
patch subject: [PATCH v2 1/3] gpio: bcm-kona: Make driver OF-independent
config: arm-allmodconfig (https://download.01.org/0day-ci/archive/20230718/202307182321.w0jEsUc4-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230718/202307182321.w0jEsUc4-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307182321.w0jEsUc4-lkp@intel.com/

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

   drivers/gpio/gpio-bcm-kona.c: In function 'bcm_kona_gpio_set_debounce':
>> drivers/gpio/gpio-bcm-kona.c:266:17: error: implicit declaration of function 'dev_err' [-Werror=implicit-function-declaration]
     266 |                 dev_err(chip->parent, "Debounce value %u not in range\n",
         |                 ^~~~~~~
   drivers/gpio/gpio-bcm-kona.c: In function 'bcm_kona_gpio_probe':
>> drivers/gpio/gpio-bcm-kona.c:559:35: error: invalid use of undefined type 'struct platform_device'
     559 |         struct device *dev = &pdev->dev;
         |                                   ^~
>> drivers/gpio/gpio-bcm-kona.c:566:21: error: implicit declaration of function 'devm_kzalloc' [-Werror=implicit-function-declaration]
     566 |         kona_gpio = devm_kzalloc(dev, sizeof(*kona_gpio), GFP_KERNEL);
         |                     ^~~~~~~~~~~~
>> drivers/gpio/gpio-bcm-kona.c:566:19: warning: assignment to 'struct bcm_kona_gpio *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     566 |         kona_gpio = devm_kzalloc(dev, sizeof(*kona_gpio), GFP_KERNEL);
         |                   ^
>> drivers/gpio/gpio-bcm-kona.c:572:15: error: implicit declaration of function 'platform_irq_count' [-Werror=implicit-function-declaration]
     572 |         ret = platform_irq_count(pdev);
         |               ^~~~~~~~~~~~~~~~~~
>> drivers/gpio/gpio-bcm-kona.c:577:24: error: implicit declaration of function 'dev_err_probe' [-Werror=implicit-function-declaration]
     577 |                 return dev_err_probe(dev, ret, "Couldn't determine GPIO banks\n");
         |                        ^~~~~~~~~~~~~
>> drivers/gpio/gpio-bcm-kona.c:586:28: error: implicit declaration of function 'devm_kcalloc' [-Werror=implicit-function-declaration]
     586 |         kona_gpio->banks = devm_kcalloc(dev,
         |                            ^~~~~~~~~~~~
>> drivers/gpio/gpio-bcm-kona.c:586:26: warning: assignment to 'struct bcm_kona_gpio_bank *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     586 |         kona_gpio->banks = devm_kcalloc(dev,
         |                          ^
   drivers/gpio/gpio-bcm-kona.c:594:9: error: implicit declaration of function 'platform_set_drvdata' [-Werror=implicit-function-declaration]
     594 |         platform_set_drvdata(pdev, kona_gpio);
         |         ^~~~~~~~~~~~~~~~~~~~
>> drivers/gpio/gpio-bcm-kona.c:607:31: error: implicit declaration of function 'devm_platform_ioremap_resource' [-Werror=implicit-function-declaration]
     607 |         kona_gpio->reg_base = devm_platform_ioremap_resource(pdev, 0);
         |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/gpio/gpio-bcm-kona.c:607:29: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     607 |         kona_gpio->reg_base = devm_platform_ioremap_resource(pdev, 0);
         |                             ^
>> drivers/gpio/gpio-bcm-kona.c:616:29: error: implicit declaration of function 'platform_get_irq' [-Werror=implicit-function-declaration]
     616 |                 bank->irq = platform_get_irq(pdev, i);
         |                             ^~~~~~~~~~~~~~~~
>> drivers/gpio/gpio-bcm-kona.c:625:9: error: implicit declaration of function 'dev_info' [-Werror=implicit-function-declaration]
     625 |         dev_info(&pdev->dev, "Setting up Kona GPIO\n");
         |         ^~~~~~~~
   drivers/gpio/gpio-bcm-kona.c:625:23: error: invalid use of undefined type 'struct platform_device'
     625 |         dev_info(&pdev->dev, "Setting up Kona GPIO\n");
         |                       ^~
   drivers/gpio/gpio-bcm-kona.c: At top level:
>> drivers/gpio/gpio-bcm-kona.c:651:15: error: variable 'bcm_kona_gpio_driver' has initializer but incomplete type
     651 | static struct platform_driver bcm_kona_gpio_driver = {
         |               ^~~~~~~~~~~~~~~
>> drivers/gpio/gpio-bcm-kona.c:652:10: error: 'struct platform_driver' has no member named 'driver'
     652 |         .driver = {
         |          ^~~~~~
>> drivers/gpio/gpio-bcm-kona.c:652:19: error: extra brace group at end of initializer
     652 |         .driver = {
         |                   ^
   drivers/gpio/gpio-bcm-kona.c:652:19: note: (near initialization for 'bcm_kona_gpio_driver')
>> drivers/gpio/gpio-bcm-kona.c:652:19: warning: excess elements in struct initializer
   drivers/gpio/gpio-bcm-kona.c:652:19: note: (near initialization for 'bcm_kona_gpio_driver')
>> drivers/gpio/gpio-bcm-kona.c:656:10: error: 'struct platform_driver' has no member named 'probe'
     656 |         .probe = bcm_kona_gpio_probe,
         |          ^~~~~
   drivers/gpio/gpio-bcm-kona.c:656:18: warning: excess elements in struct initializer
     656 |         .probe = bcm_kona_gpio_probe,
         |                  ^~~~~~~~~~~~~~~~~~~
   drivers/gpio/gpio-bcm-kona.c:656:18: note: (near initialization for 'bcm_kona_gpio_driver')
>> drivers/gpio/gpio-bcm-kona.c:658:1: warning: data definition has no type or storage class
     658 | builtin_platform_driver(bcm_kona_gpio_driver);
         | ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/gpio/gpio-bcm-kona.c:658:1: error: type defaults to 'int' in declaration of 'builtin_platform_driver' [-Werror=implicit-int]
>> drivers/gpio/gpio-bcm-kona.c:658:1: warning: parameter names (without types) in function declaration
   drivers/gpio/gpio-bcm-kona.c:651:31: error: storage size of 'bcm_kona_gpio_driver' isn't known
     651 | static struct platform_driver bcm_kona_gpio_driver = {
         |                               ^~~~~~~~~~~~~~~~~~~~
   drivers/gpio/gpio-bcm-kona.c:651: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 +/dev_err +266 drivers/gpio/gpio-bcm-kona.c

757651e3d60e5b Markus Mayer     2013-09-10  253  
757651e3d60e5b Markus Mayer     2013-09-10  254  static int bcm_kona_gpio_set_debounce(struct gpio_chip *chip, unsigned gpio,
757651e3d60e5b Markus Mayer     2013-09-10  255  				      unsigned debounce)
757651e3d60e5b Markus Mayer     2013-09-10  256  {
757651e3d60e5b Markus Mayer     2013-09-10  257  	struct bcm_kona_gpio *kona_gpio;
757651e3d60e5b Markus Mayer     2013-09-10  258  	void __iomem *reg_base;
757651e3d60e5b Markus Mayer     2013-09-10  259  	u32 val, res;
757651e3d60e5b Markus Mayer     2013-09-10  260  	unsigned long flags;
757651e3d60e5b Markus Mayer     2013-09-10  261  
ba4a74485a32c1 Linus Walleij    2015-12-04  262  	kona_gpio = gpiochip_get_data(chip);
757651e3d60e5b Markus Mayer     2013-09-10  263  	reg_base = kona_gpio->reg_base;
757651e3d60e5b Markus Mayer     2013-09-10  264  	/* debounce must be 1-128ms (or 0) */
757651e3d60e5b Markus Mayer     2013-09-10  265  	if ((debounce > 0 && debounce < 1000) || debounce > 128000) {
58383c78425e4e Linus Walleij    2015-11-04 @266  		dev_err(chip->parent, "Debounce value %u not in range\n",
757651e3d60e5b Markus Mayer     2013-09-10  267  			debounce);
757651e3d60e5b Markus Mayer     2013-09-10  268  		return -EINVAL;
757651e3d60e5b Markus Mayer     2013-09-10  269  	}
757651e3d60e5b Markus Mayer     2013-09-10  270  
757651e3d60e5b Markus Mayer     2013-09-10  271  	/* calculate debounce bit value */
757651e3d60e5b Markus Mayer     2013-09-10  272  	if (debounce != 0) {
757651e3d60e5b Markus Mayer     2013-09-10  273  		/* Convert to ms */
757651e3d60e5b Markus Mayer     2013-09-10  274  		debounce /= 1000;
757651e3d60e5b Markus Mayer     2013-09-10  275  		/* find the MSB */
757651e3d60e5b Markus Mayer     2013-09-10  276  		res = fls(debounce) - 1;
757651e3d60e5b Markus Mayer     2013-09-10  277  		/* Check if MSB-1 is set (round up or down) */
757651e3d60e5b Markus Mayer     2013-09-10  278  		if (res > 0 && (debounce & BIT(res - 1)))
757651e3d60e5b Markus Mayer     2013-09-10  279  			res++;
757651e3d60e5b Markus Mayer     2013-09-10  280  	}
757651e3d60e5b Markus Mayer     2013-09-10  281  
757651e3d60e5b Markus Mayer     2013-09-10  282  	/* spin lock for read-modify-write of the GPIO register */
c69fcea57e9d2b Julia Cartwright 2017-03-09  283  	raw_spin_lock_irqsave(&kona_gpio->lock, flags);
757651e3d60e5b Markus Mayer     2013-09-10  284  
757651e3d60e5b Markus Mayer     2013-09-10  285  	val = readl(reg_base + GPIO_CONTROL(gpio));
757651e3d60e5b Markus Mayer     2013-09-10  286  	val &= ~GPIO_GPCTR0_DBR_MASK;
757651e3d60e5b Markus Mayer     2013-09-10  287  
757651e3d60e5b Markus Mayer     2013-09-10  288  	if (debounce == 0) {
757651e3d60e5b Markus Mayer     2013-09-10  289  		/* disable debounce */
757651e3d60e5b Markus Mayer     2013-09-10  290  		val &= ~GPIO_GPCTR0_DB_ENABLE_MASK;
757651e3d60e5b Markus Mayer     2013-09-10  291  	} else {
757651e3d60e5b Markus Mayer     2013-09-10  292  		val |= GPIO_GPCTR0_DB_ENABLE_MASK |
757651e3d60e5b Markus Mayer     2013-09-10  293  		    (res << GPIO_GPCTR0_DBR_SHIFT);
757651e3d60e5b Markus Mayer     2013-09-10  294  	}
757651e3d60e5b Markus Mayer     2013-09-10  295  
757651e3d60e5b Markus Mayer     2013-09-10  296  	writel(val, reg_base + GPIO_CONTROL(gpio));
757651e3d60e5b Markus Mayer     2013-09-10  297  
c69fcea57e9d2b Julia Cartwright 2017-03-09  298  	raw_spin_unlock_irqrestore(&kona_gpio->lock, flags);
757651e3d60e5b Markus Mayer     2013-09-10  299  
757651e3d60e5b Markus Mayer     2013-09-10  300  	return 0;
757651e3d60e5b Markus Mayer     2013-09-10  301  }
757651e3d60e5b Markus Mayer     2013-09-10  302  

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 3/3] gpio: bcm-kona: Drop unused pdev member in private data structure
  2023-07-17 14:18 ` [PATCH v2 3/3] gpio: bcm-kona: Drop unused pdev member in private data structure Andy Shevchenko
@ 2023-07-18 19:27   ` kernel test robot
  0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2023-07-18 19:27 UTC (permalink / raw)
  To: Andy Shevchenko, Bartosz Golaszewski, linux-gpio, linux-kernel
  Cc: oe-kbuild-all, Linus Walleij, Ray Jui,
	Broadcom internal kernel review list, Florian Fainelli,
	Scott Branden

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@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230719/202307190321.eqsdDbky-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307190321.eqsdDbky-lkp@intel.com/

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-07-18 19:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-17 14:18 [PATCH v2 1/3] gpio: bcm-kona: Make driver OF-independent Andy Shevchenko
2023-07-17 14:18 ` [PATCH v2 2/3] gpio: bcm-kona: remove unneeded platform_set_drvdata() call Andy Shevchenko
2023-07-17 14:18 ` [PATCH v2 3/3] gpio: bcm-kona: Drop unused pdev member in private data structure Andy Shevchenko
2023-07-18 19:27   ` kernel test robot
2023-07-18 16:00 ` [PATCH v2 1/3] gpio: bcm-kona: Make driver OF-independent kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).