Re: [PATCH] gpio: xgene: Fix kconfig for standby GIPO contoller

From: Matthias Brugger
Date: Mon Mar 07 2016 - 05:47:33 EST




On 07/03/16 08:41, Linus Walleij wrote:
On Fri, Mar 4, 2016 at 6:42 PM, Matthias Brugger <mbrugger@xxxxxxxx> wrote:

The standby GPIO controller can be used as a interrupt controller.
Select GPIOLIB_IRQCHIP when compiling this driver. Otherwise we get
a compilation error:

drivers/gpio/gpio-xgene-sb.c: In function 'xgene_gpio_sb_probe':
drivers/gpio/gpio-xgene-sb.c:312:10: error: 'struct gpio_chip' has no member named 'irqdomain'
priv->gc.irqdomain = priv->irq_domain;
^
scripts/Makefile.build:295: recipe for target 'drivers/gpio/gpio-xgene-sb.o' failed
make[2]: *** [drivers/gpio/gpio-xgene-sb.o] Error 1

Apart if compiled as module, we get the following modpost errors:
ERROR: "irq_chip_eoi_parent" [drivers/gpio/gpio-xgene-sb.ko] undefined!
ERROR: "irq_chip_unmask_parent" [drivers/gpio/gpio-xgene-sb.ko] undefined!
ERROR: "irq_chip_mask_parent" [drivers/gpio/gpio-xgene-sb.ko] undefined!
ERROR: "irq_domain_create_hierarchy" [drivers/gpio/gpio-xgene-sb.ko] undefined!
ERROR: "gpiochip_get_data" [drivers/gpio/gpio-xgene-sb.ko] undefined!
ERROR: "irq_chip_set_type_parent" [drivers/gpio/gpio-xgene-sb.ko] undefined!
ERROR: "irq_domain_alloc_irqs_parent" [drivers/gpio/gpio-xgene-sb.ko] undefined!
ERROR: "irq_domain_set_hwirq_and_chip" [drivers/gpio/gpio-xgene-sb.ko] undefined!
ERROR: "irq_domain_reset_irq_data" [drivers/gpio/gpio-xgene-sb.ko] undefined!

This patch changes the kconfig so that the gpio controller can only be
build-in and selects GPIOLIB_IRQCHIP.

Fixes: 1013fc41 "gpio: xgene: Enable X-Gene standby GPIO as interrupt controller"
Cc: Quan Nguyen <qnguyen@xxxxxxx>
Signed-off-by: Matthias Brugger <mbrugger@xxxxxxxx>
---

Changes for v2:
- Add modprobe fix, changing tristate to bool
- Add Cc tag

Quan has sent a patch exporting the offending functions, but no reply from
the irqchip maintainers yet.

If they don't react we'll have to merge this and handle the module loading
later.


Thanks for the info.

Just as a heads up, this patch fix two problems. Apart from the missing exports for the irqchip functions, it selects GPIOLIB_IRQCHIP as otherwise the config may be broken.

Actually v1 of this patch just fixes this:
https://patchwork.kernel.org/patch/8502401/

Regards,
Matthias