|
@@ -266,6 +266,9 @@ static acpi_status acpi_gpiochip_request_interrupt(struct acpi_resource *ares,
|
|
|
goto fail_free_event;
|
|
|
}
|
|
|
|
|
|
+ if (agpio->wake_capable == ACPI_WAKE_CAPABLE)
|
|
|
+ enable_irq_wake(irq);
|
|
|
+
|
|
|
list_add_tail(&event->node, &acpi_gpio->events);
|
|
|
return AE_OK;
|
|
|
|
|
@@ -339,6 +342,9 @@ void acpi_gpiochip_free_interrupts(struct gpio_chip *chip)
|
|
|
list_for_each_entry_safe_reverse(event, ep, &acpi_gpio->events, node) {
|
|
|
struct gpio_desc *desc;
|
|
|
|
|
|
+ if (irqd_is_wakeup_set(irq_get_irq_data(event->irq)))
|
|
|
+ disable_irq_wake(event->irq);
|
|
|
+
|
|
|
free_irq(event->irq, event);
|
|
|
desc = event->desc;
|
|
|
if (WARN_ON(IS_ERR(desc)))
|