Thread (2 messages) 2 messages, 2 authors, 2012-06-25

Re: [PATCH 2/4] input/nomadik-ske: suspend and resume support

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2012-06-25 07:31:31

Hi Linus,

On Sun, Jun 17, 2012 at 04:17:51PM +0200, Linus Walleij wrote:
From: Naveen Kumar Gaddipati <redacted>

Suspend and resume support for ske keypad by using disable or
enable of keypad.
I do not understand this changelog entry. The driver appears to already
have suspend/resume handling, but apparently it is deficient. Please
explain exactly why old implementation is not enough.
quoted hunk ↗ jump to hunk
Signed-off-by: Naveen Kumar Gaddipati <redacted>
Reviewed-by: Srinidhi Kasagar <redacted>
Signed-off-by: Linus Walleij <redacted>
---
 drivers/input/keyboard/nomadik-ske-keypad.c |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/input/keyboard/nomadik-ske-keypad.c b/drivers/input/keyboard/nomadik-ske-keypad.c
index 6857454..68c36a7 100644
--- a/drivers/input/keyboard/nomadik-ske-keypad.c
+++ b/drivers/input/keyboard/nomadik-ske-keypad.c
@@ -368,8 +368,11 @@ static int ske_keypad_suspend(struct device *dev)
 
 	if (device_may_wakeup(dev))
 		enable_irq_wake(irq);
-	else
+	else {
+		disable_irq(keypad->irq);
 		ske_keypad_set_bits(keypad, SKE_IMSC, ~SKE_KPIMA, 0x0);
+		clk_disable(keypad->clk);
+	}
 
 	return 0;
 }
@@ -382,8 +385,11 @@ static int ske_keypad_resume(struct device *dev)
 
 	if (device_may_wakeup(dev))
 		disable_irq_wake(irq);
-	else
-		ske_keypad_set_bits(keypad, SKE_IMSC, 0x0, SKE_KPIMA);
+	else {
+		clk_enable(keypad->clk);
+		enable_irq(keypad->irq);
+		ske_keypad_chip_init(keypad);
ske_keypad_chip_init() is marked __init, if it is used in resume it has
to lose this markup.

Thanks.

-- 
Dmitry
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help