]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
gpiolib: acpi: Make acpi_gpiochip_alloc_event always return AE_OK
authorHans de Goede <hdegoede@redhat.com>
Thu, 14 Nov 2019 10:26:00 +0000 (11:26 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 21 Nov 2019 13:35:48 +0000 (14:35 +0100)
acpi_gpiochip_alloc_event is used to loop over all _AEI resources, if
we fail to bind an event handler to one of them, that is not a reason to
not try the other resources.

This commit modifies acpi_gpiochip_alloc_event to always return AE_OK,
so that we will always try to add an event handler for all _AEI resources.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20191114102600.34558-2-hdegoede@redhat.com
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpiolib-acpi.c

index 7b02ee2de0a0662c3d5f01d607aa5d9632504cc9..943c46d617a2d7a73aa12b3edb1769d56dc18db3 100644 (file)
@@ -194,6 +194,7 @@ static void acpi_gpiochip_request_irqs(struct acpi_gpio_chip *acpi_gpio)
                acpi_gpiochip_request_irq(acpi_gpio, event);
 }
 
+/* Always returns AE_OK so that we keep looping over the resources */
 static acpi_status acpi_gpiochip_alloc_event(struct acpi_resource *ares,
                                             void *context)
 {
@@ -233,7 +234,7 @@ static acpi_status acpi_gpiochip_alloc_event(struct acpi_resource *ares,
                dev_err(chip->parent,
                        "Failed to request GPIO for pin 0x%04X, err %ld\n",
                        pin, PTR_ERR(desc));
-               return AE_ERROR;
+               return AE_OK;
        }
 
        ret = gpiochip_lock_as_irq(chip, pin);
@@ -293,7 +294,7 @@ static acpi_status acpi_gpiochip_alloc_event(struct acpi_resource *ares,
 fail_free_desc:
        gpiochip_free_own_desc(desc);
 
-       return AE_ERROR;
+       return AE_OK;
 }
 
 /**