diff options
author | Kyle Repinski <repinski23@gmail.com> | 2015-04-28 16:49:42 -0500 |
---|---|---|
committer | Ziyan <jaraidaniel@gmail.com> | 2015-05-02 14:26:55 +0200 |
commit | 9ea367e4120a4c03c1a7d5f5a1670208feaaeb19 (patch) | |
tree | f09c10659fb69c732c17c4b298c6a9c8ec446368 /arch/arm | |
parent | cff206a8d20e148c40e4b6d115bcc1e012c5b7ac (diff) | |
download | kernel_samsung_tuna-9ea367e4120a4c03c1a7d5f5a1670208feaaeb19.zip kernel_samsung_tuna-9ea367e4120a4c03c1a7d5f5a1670208feaaeb19.tar.gz kernel_samsung_tuna-9ea367e4120a4c03c1a7d5f5a1670208feaaeb19.tar.bz2 |
tuna: nfc: Disable wakelock when powered off.
In less than a day's time I had quite a few minutes of nfc wakelock...
Unsure if we should bail if enable/disable of wakelock fails, will revist.
Signed-off-by: Kyle Repinski <repinski23@gmail.com>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-omap2/board-tuna-nfc.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/arch/arm/mach-omap2/board-tuna-nfc.c b/arch/arm/mach-omap2/board-tuna-nfc.c index 032ceae..a7e7a88 100644 --- a/arch/arm/mach-omap2/board-tuna-nfc.c +++ b/arch/arm/mach-omap2/board-tuna-nfc.c @@ -40,21 +40,31 @@ static unsigned int nfc_power; static struct wake_lock nfc_wake_lock; static void nfc_power_apply(void) { + int irq = gpio_to_irq(GPIO_NFC_IRQ); switch (nfc_power) { case PWR_OFF: pr_info("%s OFF\n", __func__); + if (disable_irq_wake(irq)) { + pr_err("%s: disable_irq_wake() failed\n", __func__); + } gpio_set_value(GPIO_NFC_FW, 0); gpio_set_value(GPIO_NFC_EN, 0); msleep(60); break; case PWR_ON: pr_info("%s ON\n", __func__); + if (enable_irq_wake(irq)) { + pr_err("%s: enable_irq_wake() failed\n", __func__); + } gpio_set_value(GPIO_NFC_FW, 0); gpio_set_value(GPIO_NFC_EN, 1); msleep(20); break; case PWR_ON_FW: pr_info("%s ON (firmware download)\n", __func__); + if (enable_irq_wake(irq)) { + pr_err("%s: enable_irq_wake() failed\n", __func__); + } gpio_set_value(GPIO_NFC_FW, 1); gpio_set_value(GPIO_NFC_EN, 1); msleep(20); @@ -131,11 +141,6 @@ void __init omap4_tuna_nfc_init(void) return; } - if (enable_irq_wake(irq)) { - pr_err("%s: irq_set_irq_wake() failed\n", __func__); - return; - } - nfc_power = PWR_OFF; pdev = platform_device_register_simple("nfc-power", -1, NULL, 0); |