This fixes a race between the suspend code and input events. Signed-off-by: Daniel Mack <daniel@xxxxxxxx> Cc: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> --- drivers/input/touchscreen/eeti_ts.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/drivers/input/touchscreen/eeti_ts.c b/drivers/input/touchscreen/eeti_ts.c index 204b8a1..2a01695 100644 --- a/drivers/input/touchscreen/eeti_ts.c +++ b/drivers/input/touchscreen/eeti_ts.c @@ -250,6 +250,9 @@ static int eeti_ts_suspend(struct i2c_client *client, pm_message_t mesg) if (device_may_wakeup(&client->dev)) enable_irq_wake(priv->irq); + disable_irq(priv->irq); + cancel_work_sync(&priv->work); + return 0; } @@ -260,6 +263,10 @@ static int eeti_ts_resume(struct i2c_client *client) if (device_may_wakeup(&client->dev)) disable_irq_wake(priv->irq); + /* If we have active users, read the events once to arm the IRQ */ + if (priv->input->users) + eeti_ts_read(&priv->work); + return 0; } #else -- 1.7.0.3 -- 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