gpio: acpi: Skip _AEI entries without a handler rather then aborting the scan
authorHans de Goede <hdegoede@redhat.com>
Fri, 23 Jun 2017 07:26:13 +0000 (09:26 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 29 Jun 2017 12:55:08 +0000 (14:55 +0200)
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>
drivers/gpio/gpiolib-acpi.c

index 2185232da823e658c326063dda45aaa2d9a66f71..8fa5fcd00e9a0b66cf54b2e7b7d1efe6a4eb2817 100644 (file)
@@ -201,7 +201,7 @@ static acpi_status acpi_gpiochip_request_interrupt(struct acpi_resource *ares,
                        handler = acpi_gpio_irq_handler_evt;
        }
        if (!handler)
-               return AE_BAD_PARAMETER;
+               return AE_OK;
 
        pin = acpi_gpiochip_pin_to_gpio_offset(chip->gpiodev, pin);
        if (pin < 0)