From: Colin Cross Date: Wed, 18 Aug 2010 07:19:27 +0000 (-0700) Subject: [ARM] tegra: gpio: Add support for waking from suspend X-Git-Tag: firefly_0821_release~9833^2~365 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=4c053d2fc9bad23a5b33f83b678be24d3c4f8ef3;p=firefly-linux-kernel-4.4.55.git [ARM] tegra: gpio: Add support for waking from suspend Change-Id: If692ff0e7de3d3d5a825a8b1e7989650ef9fb238 Signed-off-by: Colin Cross --- diff --git a/arch/arm/mach-tegra/gpio.c b/arch/arm/mach-tegra/gpio.c index 1bf92e581cc6..0187aaa61cd9 100644 --- a/arch/arm/mach-tegra/gpio.c +++ b/arch/arm/mach-tegra/gpio.c @@ -212,6 +212,9 @@ static int tegra_gpio_irq_set_type(unsigned int irq, unsigned int type) else if (type & (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING)) __set_irq_handler_unlocked(irq, handle_edge_irq); + if (tegra_get_suspend_mode() == TEGRA_SUSPEND_LP0) + tegra_set_lp0_wake_type(irq, type); + return 0; } @@ -319,8 +322,17 @@ void tegra_gpio_suspend(void) static int tegra_gpio_wake_enable(unsigned int irq, unsigned int enable) { + int ret; struct tegra_gpio_bank *bank = get_irq_chip_data(irq); - return set_irq_wake(bank->irq, enable); + + ret = tegra_set_lp1_wake(bank->irq, enable); + if (ret) + return ret; + + if (tegra_get_suspend_mode() == TEGRA_SUSPEND_LP0) + return tegra_set_lp0_wake(irq, enable); + + return 0; } #endif