gpio: lpc18xx: fix GPIO controller driver build as a module
authorVladimir Zapolskiy <vz@mleia.com>
Sat, 8 Dec 2018 14:38:41 +0000 (16:38 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 10 Dec 2018 08:10:46 +0000 (09:10 +0100)
The problem is reported for allmodconfig build setup:

  ERROR: "irq_chip_retrigger_hierarchy" [drivers/gpio/gpio-lpc18xx.ko] undefined!
  make[2]: *** [scripts/Makefile.modpost:92: __modpost] Error 1
  make[1]: *** [Makefile:1271: modules] Error 2

My testing in runtime shows that it is sufficient to remove .irq_retrigger
callback, which is assigned to unexported irq_chip_retrigger_hierarchy()
function, I did't observe any regressions, and thus apparently it is a
better fix rather than exporting the function defined in kernel/irq/chip.c
(see commit 52b2a05fa7c8 ("genirq: Export IRQ functions for module use"))
or sticking the GPIO controller driver build to built-in option only.

Reported-by: kbuild test robot <lkp@intel.com>
Fixes: 5ddabfe8d3de ("gpio: lpc18xx: add GPIO pin interrupt controller support")
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-lpc18xx.c

index 040fb59d06f7452f1f564142dd756fbe561cf9a5..d441dbaed7a3d2bd22df11e00c1ab5930ae0f059 100644 (file)
@@ -11,7 +11,6 @@
 #include <linux/gpio/driver.h>
 #include <linux/io.h>
 #include <linux/irqdomain.h>
-#include <linux/irqchip.h>
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
@@ -158,7 +157,6 @@ static struct irq_chip lpc18xx_gpio_pin_ic = {
        .irq_unmask     = lpc18xx_gpio_pin_ic_unmask,
        .irq_eoi        = lpc18xx_gpio_pin_ic_eoi,
        .irq_set_type   = lpc18xx_gpio_pin_ic_set_type,
-       .irq_retrigger  = irq_chip_retrigger_hierarchy,
        .flags          = IRQCHIP_SET_TYPE_MASKED,
 };