Messages in this thread | | | From | Oskar Andero <> | Date | Fri, 5 Jul 2013 09:46:32 +0200 | Subject | Re: [PATCH] input: don't call input_dev_release_keys() in resume |
| |
Hi Dmitry,
On 18:33 Thu 04 Apr , Dmitry Torokhov wrote: > Hi Oskar, > > On Thu, Mar 07, 2013 at 03:01:22PM +0100, oskar.andero@sonymobile.com wrote: > > From: Aleksej Makarov <aleksej.makarov@sonymobile.com> > > > > When waking up the platform by pressing a specific key, sending a > > release on that key makes it impossible to react on the event in > > user-space. > > > > No, we can not simply not release keys after resume from suspend, as > this leads to keys being stuck. Consider you are holding an 'I' key on > your external USB keyboard and close your laptop's lid. Then you release > the key and leave. Later you come back, open the lid waking the laptop > and observe endless stream of 'I' in your open terminal. > > Maybe we should release the keys during suspend time? I am not sure how > Android infrastructure will react to this though...
I finally got the time to try this out. Releasing the keys in suspend also solves our problem. Would such patch work for the USB keyboard case you described? Theoretically, I think it should, right?
So, basically:
static int input_dev_suspend(struct device *dev) { struct input_dev *input_dev = to_input_dev(dev); - mutex_lock(&input_dev->mutex); - - if (input_dev->users) - input_dev_toggle(input_dev, false); - - mutex_unlock(&input_dev->mutex); + input_reset_device(input_dev); return 0; } static int input_dev_resume(struct device *dev) { - struct input_dev *input_dev = to_input_dev(dev); - - input_reset_device(input_dev); - return 0; }
Should I send the patch?
-Oskar
| |