gpio: max732x: Propagate wake-up setting to parent irq controller
authorSemen Protsenko <semen.protsenko@globallogic.com>
Tue, 21 Apr 2015 17:27:37 +0000 (20:27 +0300)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 4 May 2015 13:31:20 +0000 (15:31 +0200)
Set .irq_set_wake callback to prevent possible issues on wake-up.

This patch was inspired by this commit:
b80eef95beb04760629822fa130aeed54cdfafca

Signed-off-by: Semen Protsenko <semen.protsenko@globallogic.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-max732x.c

index 0fa4543c5e02505871a2f1e3bfef6cb840d94e47..1885e5c3569e8f8dfbb1c4efdd2fe756759c0985 100644 (file)
@@ -429,6 +429,14 @@ static int max732x_irq_set_type(struct irq_data *d, unsigned int type)
        return 0;
 }
 
+static int max732x_irq_set_wake(struct irq_data *data, unsigned int on)
+{
+       struct max732x_chip *chip = irq_data_get_irq_chip_data(data);
+
+       irq_set_irq_wake(chip->client->irq, on);
+       return 0;
+}
+
 static struct irq_chip max732x_irq_chip = {
        .name                   = "max732x",
        .irq_mask               = max732x_irq_mask,
@@ -436,6 +444,7 @@ static struct irq_chip max732x_irq_chip = {
        .irq_bus_lock           = max732x_irq_bus_lock,
        .irq_bus_sync_unlock    = max732x_irq_bus_sync_unlock,
        .irq_set_type           = max732x_irq_set_type,
+       .irq_set_wake           = max732x_irq_set_wake,
 };
 
 static uint8_t max732x_irq_pending(struct max732x_chip *chip)