Hi Eric, On gio, 2010-06-17 at 20:59 +0200, Eric Bénard wrote: > We use keypad_data to enable wakeup from platform data > > suspend/resume is tested on an i.MX27 when keypad is not > in use and when it's is in use (in which case we immediatly > get the key pressed at wakeup) > > Signed-off-by: Eric Bénard <eric@xxxxxxxxxx> > Cc: maramaopercheseimorto@xxxxxxxxx > Cc: linux-input@xxxxxxxxxxxxxxx > Cc: dmitry.torokhov@xxxxxxxxx > Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > --- > v2 : > - simplify suspend & resume functions > - convert to pm_ops > > drivers/input/keyboard/imx_keypad.c | 40 +++++++++++++++++++++++++++++++++- > 1 files changed, 38 insertions(+), 2 deletions(-) > > diff --git a/drivers/input/keyboard/imx_keypad.c b/drivers/input/keyboard/imx_keypad.c > index d92c15c..9aa0005 100644 > --- a/drivers/input/keyboard/imx_keypad.c > +++ b/drivers/input/keyboard/imx_keypad.c > @@ -364,6 +364,38 @@ static void imx_keypad_inhibit(struct imx_keypad *keypad) > writew(0xff00, keypad->mmio_base + KPCR); > } > > +#ifdef CONFIG_PM > +static int mxc_kpp_suspend(struct device *dev) > +{ > + struct platform_device *pdev = to_platform_device(dev); > + struct imx_keypad *keypad = platform_get_drvdata(pdev); > + > + keypad->enabled = false; > + synchronize_irq(keypad->irq); > + disable_irq(keypad->irq); > + clk_disable(keypad->clk); > + > + return 0; > +} > + > +static int mxc_kpp_resume(struct device *dev) > +{ > + struct platform_device *pdev = to_platform_device(dev); > + struct imx_keypad *keypad = platform_get_drvdata(pdev); > + > + keypad->enabled = true; > + clk_enable(keypad->clk); > + enable_irq(keypad->irq); > + > + return 0; > +} Ok, so with this patch the keypad cannot wake the system? It is scheduled another patch? -- Alberto! Be Persistent! - Greg Kroah-Hartman (FOSDEM 2010) -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html