tree: https://kernel.googlesource.com/pub/scm/linux/kernel/git/linusw/linux-gpio.git devel-cleanup-irqchip-threaded head: 3a992c673da81e8d95a2657df5234cd5cb05afa4 commit: 3a992c673da81e8d95a2657df5234cd5cb05afa4 [20/20] gpio: Handle generic and threaded IRQs on gpio irqchips config: x86_64-allmodconfig (attached as .config) compiler: gcc-7 (Debian 7.4.0-10) 7.4.0 reproduce: git checkout 3a992c673da81e8d95a2657df5234cd5cb05afa4 # save the attached .config to linux build tree make ARCH=x86_64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): drivers/gpio/gpio-104-dio-48e.c: In function 'dio48e_probe': >> drivers/gpio/gpio-104-dio-48e.c:441:23: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types] girq->parent_handler = dio48e_irq_handler; ^ cc1: some warnings being treated as errors vim +441 drivers/gpio/gpio-104-dio-48e.c 398 399 static int dio48e_probe(struct device *dev, unsigned int id) 400 { 401 struct dio48e_gpio *dio48egpio; 402 const char *const name = dev_name(dev); 403 struct gpio_irq_chip *girq; 404 int err; 405 406 dio48egpio = devm_kzalloc(dev, sizeof(*dio48egpio), GFP_KERNEL); 407 if (!dio48egpio) 408 return -ENOMEM; 409 410 if (!devm_request_region(dev, base[id], DIO48E_EXTENT, name)) { 411 dev_err(dev, "Unable to lock port addresses (0x%X-0x%X)\n", 412 base[id], base[id] + DIO48E_EXTENT); 413 return -EBUSY; 414 } 415 416 err = devm_request_irq(dev, irq[id], dio48e_irq_handler, 0, name, 417 dio48egpio); 418 if (err) { 419 dev_err(dev, "failed to request IRQ\n"); 420 return err; 421 } 422 423 dio48egpio->chip.label = name; 424 dio48egpio->chip.parent = dev; 425 dio48egpio->chip.owner = THIS_MODULE; 426 dio48egpio->chip.base = -1; 427 dio48egpio->chip.ngpio = DIO48E_NGPIO; 428 dio48egpio->chip.names = dio48e_names; 429 dio48egpio->chip.get_direction = dio48e_gpio_get_direction; 430 dio48egpio->chip.direction_input = dio48e_gpio_direction_input; 431 dio48egpio->chip.direction_output = dio48e_gpio_direction_output; 432 dio48egpio->chip.get = dio48e_gpio_get; 433 dio48egpio->chip.get_multiple = dio48e_gpio_get_multiple; 434 dio48egpio->chip.set = dio48e_gpio_set; 435 dio48egpio->chip.set_multiple = dio48e_gpio_set_multiple; 436 dio48egpio->base = base[id]; 437 438 girq = &dio48egpio->chip.irq; 439 girq->chip = &dio48e_irqchip; 440 girq->parent_handler_type = GPIO_IRQ_HANDLER_GENERIC; > 441 girq->parent_handler = dio48e_irq_handler; 442 girq->num_parents = 1; 443 girq->parents = devm_kcalloc(dev, 1, sizeof(*girq->parents), 444 GFP_KERNEL); 445 if (!girq->parents) 446 return -ENOMEM; 447 girq->parents[0] = irq[id]; 448 girq->default_type = IRQ_TYPE_NONE; 449 girq->handler = handle_edge_irq; 450 451 raw_spin_lock_init(&dio48egpio->lock); 452 453 /* initialize all GPIO as output */ 454 outb(0x80, base[id] + 3); 455 outb(0x00, base[id]); 456 outb(0x00, base[id] + 1); 457 outb(0x00, base[id] + 2); 458 outb(0x00, base[id] + 3); 459 outb(0x80, base[id] + 7); 460 outb(0x00, base[id] + 4); 461 outb(0x00, base[id] + 5); 462 outb(0x00, base[id] + 6); 463 outb(0x00, base[id] + 7); 464 465 /* disable IRQ by default */ 466 inb(base[id] + 0xB); 467 468 err = devm_gpiochip_add_data(dev, &dio48egpio->chip, dio48egpio); 469 if (err) { 470 dev_err(dev, "GPIO registering failed (%d)\n", err); 471 return err; 472 } 473 474 return 0; 475 } 476 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip