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