Message ID | 4d34a0a70903021805l56ebe7e2u277fcdebe01f5693@mail.gmail.com (mailing list archive) |
---|---|
State | Rejected |
Delegated to: | Kevin Hilman |
Headers | show |
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index f856a90..798a8cd 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c @@ -837,13 +837,10 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable) case METHOD_MPUIO: case METHOD_GPIO_1610: spin_lock_irqsave(&bank->lock, flags); - if (enable) { + if (enable) bank->suspend_wakeup |= (1 << gpio); - enable_irq_wake(bank->irq); - } else { - disable_irq_wake(bank->irq); + else bank->suspend_wakeup &= ~(1 << gpio); - } spin_unlock_irqrestore(&bank->lock, flags); return 0;
Current omap_irq_chip variable (in arch/arm/mach-omap2/irq.c) doesn't have set_wake function. So invoking enable_irq_wake() and disable_irq_wake() for the MPU IRQs always returns -ENXIO and sometime it generates warning message(Unbalanced IRQ %d wake disable). Actual enabling and disable IRQ wakeup can be done by enable_irq() and disable_irq(). Signed-off-by: Kim Kyuwon <q1.kim@samsung.com> --- arch/arm/plat-omap/gpio.c | 14 ++++---------- 1 files changed, 4 insertions(+), 10 deletions(-) #endif @@ -856,13 +853,10 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable) return -EINVAL; } spin_lock_irqsave(&bank->lock, flags); - if (enable) { + if (enable) bank->suspend_wakeup |= (1 << gpio); - enable_irq_wake(bank->irq); - } else { - disable_irq_wake(bank->irq); + else bank->suspend_wakeup &= ~(1 << gpio); - } spin_unlock_irqrestore(&bank->lock, flags); return 0; #endif