Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

gpio: acpi: Skip _AEI entries without a handler rather then aborting the scan

acpi_walk_resources will stop as soon as the callback passed in returns
an error status. On a x86 tablet I have the first GpioInt in the _AEI
resource list has no handler defined in the DSDT, causing
acpi_walk_resources to abort scanning the rest of the resource list,
which does define valid ACPI GPIO events.

This commit changes the return for not finding a handler from
AE_BAD_PARAMETER to AE_OK so that the rest of the resource list will
get scanned normally in case of missing event handlers.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

Hans de Goede and committed by
Linus Walleij
c06632ea ad537b82

+1 -1
+1 -1
drivers/gpio/gpiolib-acpi.c
··· 201 201 handler = acpi_gpio_irq_handler_evt; 202 202 } 203 203 if (!handler) 204 - return AE_BAD_PARAMETER; 204 + return AE_OK; 205 205 206 206 pin = acpi_gpiochip_pin_to_gpio_offset(chip->gpiodev, pin); 207 207 if (pin < 0)