All of lore.kernel.org
 help / color / mirror / Atom feed
* [brgl:gpio/for-next 5/8] drivers/gpio/gpio-altera.c:224:11: warning: comparison between pointer and integer ('struct gpio_irq_chip *' and 'int')
@ 2026-09-03  7:34 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-09-03  7:34 UTC (permalink / raw)
  To: bui duc phuc; +Cc: llvm, oe-kbuild-all, linux-gpio, Bartosz Golaszewski

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git gpio/for-next
head:   1900b5a41493e7050c68c1e62780d6fb9a209457
commit: 6e6e585b603e4f679c2a33c8f0954ec88b52fd7a [5/8] gpio: altera: Handle errors from optional IRQ lookup
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20260903/202609031554.tpxA67sB-lkp@intel.com/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project ed1626b9d0eaf7c406f44da5fb595ad94559f54b)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260903/202609031554.tpxA67sB-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/202609031554.tpxA67sB-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/gpio/gpio-altera.c:224:7: error: use of undeclared identifier 'irq'; did you mean 'girq'?
     224 |                 if (irq != -ENXIO)
         |                     ^~~
         |                     girq
   drivers/gpio/gpio-altera.c:174:24: note: 'girq' declared here
     174 |         struct gpio_irq_chip *girq;
         |                               ^
>> drivers/gpio/gpio-altera.c:224:11: warning: comparison between pointer and integer ('struct gpio_irq_chip *' and 'int') [-Wpointer-integer-compare]
     224 |                 if (irq != -ENXIO)
         |                     ~~~ ^  ~~~~~~
   drivers/gpio/gpio-altera.c:225:11: error: use of undeclared identifier 'irq'; did you mean 'girq'?
     225 |                         return irq;
         |                                ^~~
         |                                girq
   drivers/gpio/gpio-altera.c:174:24: note: 'girq' declared here
     174 |         struct gpio_irq_chip *girq;
         |                               ^
   drivers/gpio/gpio-altera.c:225:11: error: incompatible pointer to integer conversion returning 'struct gpio_irq_chip *' from a function with result type 'int' [-Wint-conversion]
     225 |                         return irq;
         |                                ^~~
   1 warning and 3 errors generated.


vim +224 drivers/gpio/gpio-altera.c

   165	
   166	static int altera_gpio_probe(struct platform_device *pdev)
   167	{
   168		struct gpio_generic_chip_config config;
   169		struct device *dev = &pdev->dev;
   170		int reg, ret;
   171		struct altera_gpio_chip *altera_gc;
   172		struct gpio_generic_chip *chip;
   173		struct gpio_chip *gc;
   174		struct gpio_irq_chip *girq;
   175		int mapped_irq;
   176	
   177		altera_gc = devm_kzalloc(&pdev->dev, sizeof(*altera_gc), GFP_KERNEL);
   178		if (!altera_gc)
   179			return -ENOMEM;
   180	
   181		raw_spin_lock_init(&altera_gc->gpio_lock);
   182	
   183		altera_gc->regs = devm_platform_ioremap_resource(pdev, 0);
   184		if (IS_ERR(altera_gc->regs))
   185			return dev_err_probe(dev, PTR_ERR(altera_gc->regs),
   186					     "failed to ioremap memory resource\n");
   187	
   188		chip = &altera_gc->chip;
   189	
   190		config = (struct gpio_generic_chip_config) {
   191			.dev = dev,
   192			.sz = 4,
   193			.dat = altera_gc->regs + ALTERA_GPIO_DATA,
   194			.set = altera_gc->regs + ALTERA_GPIO_DATA,
   195			.dirout = altera_gc->regs + ALTERA_GPIO_DIR,
   196		};
   197	
   198		ret = gpio_generic_chip_init(chip, &config);
   199		if (ret)
   200			return dev_err_probe(dev, ret, "unable to init generic GPIO\n");
   201	
   202		gc = &chip->gc;
   203	
   204		if (device_property_read_u32(dev, "altr,ngpio", &reg))
   205			/* By default assume maximum ngpio */
   206			gc->ngpio = ALTERA_GPIO_MAX_NGPIO;
   207		else
   208			gc->ngpio = reg;
   209	
   210		if (gc->ngpio > ALTERA_GPIO_MAX_NGPIO) {
   211			dev_warn(&pdev->dev,
   212				"ngpio is greater than %d, defaulting to %d\n",
   213				ALTERA_GPIO_MAX_NGPIO, ALTERA_GPIO_MAX_NGPIO);
   214			gc->ngpio = ALTERA_GPIO_MAX_NGPIO;
   215		}
   216	
   217		gc->base = -1;
   218		gc->label = devm_kasprintf(dev, GFP_KERNEL, "%pfw", dev_fwnode(dev));
   219		if (!gc->label)
   220			return -ENOMEM;
   221	
   222		mapped_irq = platform_get_irq_optional(pdev, 0);
   223		if (mapped_irq < 0) {
 > 224			if (irq != -ENXIO)
   225				return irq;
   226			goto skip_irq;
   227		}
   228	
   229		if (device_property_read_u32(dev, "altr,interrupt-type", &reg)) {
   230			dev_err(&pdev->dev,
   231				"altr,interrupt-type value not set in device tree\n");
   232			return -EINVAL;
   233		}
   234		altera_gc->interrupt_trigger = reg;
   235	
   236		girq = &gc->irq;
   237		gpio_irq_chip_set_chip(girq, &altera_gpio_irq_chip);
   238	
   239		if (altera_gc->interrupt_trigger == IRQ_TYPE_LEVEL_HIGH)
   240			girq->parent_handler = altera_gpio_irq_leveL_high_handler;
   241		else
   242			girq->parent_handler = altera_gpio_irq_edge_handler;
   243		girq->num_parents = 1;
   244		girq->parents = devm_kcalloc(&pdev->dev, 1, sizeof(*girq->parents),
   245					     GFP_KERNEL);
   246		if (!girq->parents)
   247			return -ENOMEM;
   248		girq->default_type = IRQ_TYPE_NONE;
   249		girq->handler = handle_bad_irq;
   250		girq->parents[0] = mapped_irq;
   251	
   252	skip_irq:
   253		ret = devm_gpiochip_add_data(dev, gc, altera_gc);
   254		if (ret) {
   255			dev_err(&pdev->dev, "Failed adding memory mapped gpiochip\n");
   256			return ret;
   257		}
   258	
   259		return 0;
   260	}
   261	

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-03  7:35 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-03  7:34 [brgl:gpio/for-next 5/8] drivers/gpio/gpio-altera.c:224:11: warning: comparison between pointer and integer ('struct gpio_irq_chip *' and 'int') kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.