On 06/10/2015 02:23 AM, Mark Brown wrote:
On Tue, Jun 09, 2015 at 07:09:47PM +0100, Build bot for Mark Brown wrote:
arm64-allmodconfig ERROR: "acpi_gpiochip_request_interrupts" [drivers/gpio/gpio-xgene-sb.ko] undefined! ERROR: "acpi_gpiochip_free_interrupts" [drivers/gpio/gpio-xgene-sb.ko] undefined!
Today's -next fails to build an arm64 allmodconfig due to commit 733cf014f02040b3ad (gpio: xgene: add ACPI support for APM X-Gene GPIO standby driver) which adds ACPI support to the X-Gene standby driver without either adding a dependency on ACPI or there being stubs in the ACPI headers for the above functions in !ACPI configurations. My instinct is that the stubs are going to be nicer since it'll save on ifdefs in drivers which seems nicer.
It seems that acpi_gpiochip_request_interrupts didn't export so there will be a compile error when xgene-sb compiled as a ko, I prepared a patch below:
From d47771429144d80a2c38b79f06577dd237e349d1 Mon Sep 17 00:00:00 2001 From: Hanjun Guo hanjun.guo@linaro.org Date: Wed, 10 Jun 2015 15:24:30 +0800 Subject: [PATCH] GPIO / ACPI: export acpi_gpiochip_request(free)_interrupts for module use
acpi_gpiochip_request(free)_interrupts can be used for modules, so export them. This also fixs a compile error when xgene-sb configured as kernel module.
Fixes: 733cf014f020 "gpio: xgene: add ACPI support for APM X-Gene GPIO standby driver" Signed-off-by: Hanjun Guo hanjun.guo@linaro.org --- drivers/gpio/gpiolib-acpi.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c index 19b99d0..980a996 100644 --- a/drivers/gpio/gpiolib-acpi.c +++ b/drivers/gpio/gpiolib-acpi.c @@ -307,6 +307,7 @@ void acpi_gpiochip_request_interrupts(struct gpio_chip *chip) acpi_walk_resources(handle, "_AEI", acpi_gpiochip_request_interrupt, acpi_gpio); } +EXPORT_SYMBOL_GPL(acpi_gpiochip_request_interrupts);
/** * acpi_gpiochip_free_interrupts() - Free GPIO ACPI event interrupts. @@ -346,6 +347,7 @@ void acpi_gpiochip_free_interrupts(struct gpio_chip *chip) kfree(event); } } +EXPORT_SYMBOL_GPL(acpi_gpiochip_free_interrupts);
int acpi_dev_add_driver_gpios(struct acpi_device *adev, const struct acpi_gpio_mapping *gpios)