summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLin Fuzhen <fuzhen.lin@freescale.com>2012-03-01 18:52:09 +0800
committerLin Fuzhen <fuzhen.lin@freescale.com>2012-03-01 18:56:52 +0800
commit9ba4c42103fae2c3daff774d95d5103268d28a5b (patch)
treecb6c4ad50369cc730542cac44af72a93b8db3ed2
parent1275e8745ea9f5d5c62123b002fee4b4aec4b19f (diff)
ENGR00175884 PM: Fix short press gpio power key failed resume system issue
For gpio IRQ which defined as device IRQ is being enabled after syscore resume completed, this may cause the key down could not be deteced sometime. Enabel gpio power key early irq during syscore instead of at device resume time. Some platform like Android need to konw the power key is pressed then to reume the other devcies Signed-off-by: Lin Fuzhen <fuzhen.lin@freescale.com>
-rw-r--r--drivers/input/keyboard/gpio_keys.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
index 6e6145b9a4c1..4ed0ab563736 100644
--- a/drivers/input/keyboard/gpio_keys.c
+++ b/drivers/input/keyboard/gpio_keys.c
@@ -414,6 +414,14 @@ static int __devinit gpio_keys_setup_key(struct platform_device *pdev,
*/
if (!button->can_disable)
irqflags |= IRQF_SHARED;
+ /*
+ * Resume power key early during syscore instead of at device
+ * resume time.
+ * Some platform like Android need to konw the power key is pressed
+ * then to reume the other devcies
+ */
+ if (button->wakeup)
+ irqflags |= IRQF_EARLY_RESUME;
error = request_any_context_irq(irq, gpio_keys_isr, irqflags, desc, bdata);
if (error < 0) {