Hi Mathieu, kernel test robot noticed the following build warnings: [auto build test WARNING on 78d4f34e2115b517bcbfe7ec0d018bbbb6f9b0b8] url: https://github.com/intel-lab-lkp/linux/commits/Mathieu-Dubois-Briand/dt-bindings-Add-MAX7360-MFD-device/20241220-002541 base: 78d4f34e2115b517bcbfe7ec0d018bbbb6f9b0b8 patch link: https://lore.kernel.org/r/20241219-mdb-max7360-support-v1-5-8e8317584121%40bootlin.com patch subject: [PATCH 5/8] gpio: max7360: Add MAX7360 gpio support config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20241220/202412202337.8jOygMaK-lkp@xxxxxxxxx/config) compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241220/202412202337.8jOygMaK-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/202412202337.8jOygMaK-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): drivers/gpio/gpio-max7360.c:57:41: warning: variable 'val' is uninitialized when used here [-Wuninitialized] 57 | "failed to set value %d on gpio-%d", val, pin); | ^~~ include/linux/dev_printk.h:154:65: note: expanded from macro 'dev_err' 154 | dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~~~~~ include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~~~~~~~~~ drivers/gpio/gpio-max7360.c:42:18: note: initialize the variable 'val' to silence this warning 42 | unsigned int val; | ^ | = 0 >> drivers/gpio/gpio-max7360.c:370:32: warning: cast to smaller integer type 'int' from 'const void *' [-Wvoid-pointer-to-int-cast] 370 | max7360_gpio->gpio_function = (int)device_get_match_data(&pdev->dev); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. vim +370 drivers/gpio/gpio-max7360.c 333 334 static int max7360_gpio_probe(struct platform_device *pdev) 335 { 336 struct max7360_gpio *max7360_gpio; 337 unsigned int ngpios; 338 unsigned int outconf; 339 struct gpio_irq_chip *girq; 340 unsigned long flags; 341 int irq; 342 int ret; 343 344 if (!pdev->dev.parent) { 345 dev_err(&pdev->dev, "no parent device\n"); 346 return -ENODEV; 347 } 348 349 max7360_gpio = devm_kzalloc(&pdev->dev, sizeof(struct max7360_gpio), 350 GFP_KERNEL); 351 if (!max7360_gpio) 352 return -ENOMEM; 353 354 if (of_property_read_u32(pdev->dev.of_node, "ngpios", &ngpios)) { 355 dev_err(&pdev->dev, "Missing ngpios OF property\n"); 356 return -ENODEV; 357 } 358 359 max7360_gpio->regmap = dev_get_regmap(pdev->dev.parent, NULL); 360 if (!max7360_gpio->regmap) { 361 dev_err(&pdev->dev, "could not get parent regmap\n"); 362 return -ENODEV; 363 } 364 365 max7360_gpio->dev = &pdev->dev; 366 max7360_gpio->chip = max7360_gpio_chip; 367 max7360_gpio->chip.ngpio = ngpios; 368 max7360_gpio->chip.parent = &pdev->dev; 369 max7360_gpio->chip.base = -1; > 370 max7360_gpio->gpio_function = (int)device_get_match_data(&pdev->dev); 371 372 dev_dbg(&pdev->dev, "gpio count: %d\n", max7360_gpio->chip.ngpio); 373 374 if (max7360_gpio->gpio_function == MAX7360_GPIO_PORT) { 375 /* Port GPIOs: set output mode configuration (constant-current 376 * or not). 377 * This property is optional. 378 */ 379 outconf = 0; 380 ret = of_property_read_u32(pdev->dev.of_node, 381 "constant-current-disable", &outconf); 382 if (ret && (ret != -EINVAL)) { 383 dev_err(&pdev->dev, 384 "Failed to read constant-current-disable OF property\n"); 385 return -ENODEV; 386 } 387 388 regmap_write(max7360_gpio->regmap, MAX7360_REG_GPIOOUTM, outconf); 389 } 390 391 if (max7360_gpio->gpio_function == MAX7360_GPIO_PORT && 392 of_property_read_bool(pdev->dev.of_node, "interrupt-controller")) { 393 /* Port GPIOs: declare IRQ chip, if configuration was provided. 394 */ 395 irq = platform_get_irq(pdev, 0); 396 if (irq < 0) 397 return dev_err_probe(&pdev->dev, irq, 398 "Failed to get IRQ"); 399 400 flags = IRQF_TRIGGER_LOW | IRQF_ONESHOT | IRQF_SHARED; 401 ret = devm_request_threaded_irq(&pdev->dev, irq, NULL, 402 max7360_gpio_irq, flags, 403 "max7360-gpio", max7360_gpio); 404 if (ret) 405 return dev_err_probe(&pdev->dev, ret, 406 "Failed to register interrupt: %d\n", 407 ret); 408 409 girq = &max7360_gpio->chip.irq; 410 gpio_irq_chip_set_chip(girq, &max7360_gpio_irqchip); 411 girq->parent_handler = NULL; 412 girq->num_parents = 0; 413 girq->parents = NULL; 414 girq->threaded = true; 415 girq->default_type = IRQ_TYPE_NONE; 416 girq->handler = handle_simple_irq; 417 } 418 419 ret = devm_gpiochip_add_data(&pdev->dev, &max7360_gpio->chip, max7360_gpio); 420 if (ret) { 421 dev_err(&pdev->dev, "unable to add gpiochip: %d\n", ret); 422 return ret; 423 } 424 425 return 0; 426 } 427 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki