aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorKyle Repinski <repinski23@gmail.com>2015-04-28 16:49:42 -0500
committerZiyan <jaraidaniel@gmail.com>2015-05-02 14:26:55 +0200
commit9ea367e4120a4c03c1a7d5f5a1670208feaaeb19 (patch)
treef09c10659fb69c732c17c4b298c6a9c8ec446368 /arch/arm
parentcff206a8d20e148c40e4b6d115bcc1e012c5b7ac (diff)
downloadkernel_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.c15
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);