* [PATCH] input: don't call input_dev_release_keys() in resume
@ 2013-03-07 14:01 oskar.andero
2013-04-04 14:57 ` Oskar Andero
2013-04-04 16:33 ` Dmitry Torokhov
0 siblings, 2 replies; 6+ messages in thread
From: oskar.andero @ 2013-03-07 14:01 UTC (permalink / raw)
To: linux-kernel, linux-input; +Cc: dmitry.torokhov, Aleksej Makarov, Oskar Andero
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.
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Reviewed-by: Radovan Lekanovic <radovan.lekanovic@sonymobile.com>
Signed-off-by: Aleksej Makarov <aleksej.makarov@sonymobile.com>
Signed-off-by: Oskar Andero <oskar.andero@sonymobile.com>
---
drivers/input/input.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/drivers/input/input.c b/drivers/input/input.c
index c044699..61ce19f 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -1690,7 +1690,10 @@ static int input_dev_resume(struct device *dev)
{
struct input_dev *input_dev = to_input_dev(dev);
- input_reset_device(input_dev);
+ mutex_lock(&input_dev->mutex);
+ if (input_dev->users)
+ input_dev_toggle(input_dev, true);
+ mutex_unlock(&input_dev->mutex);
return 0;
}
--
1.7.8.6
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] input: don't call input_dev_release_keys() in resume
2013-03-07 14:01 [PATCH] input: don't call input_dev_release_keys() in resume oskar.andero
@ 2013-04-04 14:57 ` Oskar Andero
2013-04-04 16:33 ` Dmitry Torokhov
1 sibling, 0 replies; 6+ messages in thread
From: Oskar Andero @ 2013-04-04 14:57 UTC (permalink / raw)
To: linux-kernel@vger.kernel.org, linux-input@vger.kernel.org
Cc: dmitry.torokhov@gmail.com, Makarov, Aleksej, Radovan Lekanovic
On 15:01 Thu 07 Mar , 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.
>
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Reviewed-by: Radovan Lekanovic <radovan.lekanovic@sonymobile.com>
> Signed-off-by: Aleksej Makarov <aleksej.makarov@sonymobile.com>
> Signed-off-by: Oskar Andero <oskar.andero@sonymobile.com>
> ---
> drivers/input/input.c | 5 ++++-
> 1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/input/input.c b/drivers/input/input.c
> index c044699..61ce19f 100644
> --- a/drivers/input/input.c
> +++ b/drivers/input/input.c
> @@ -1690,7 +1690,10 @@ static int input_dev_resume(struct device *dev)
> {
> struct input_dev *input_dev = to_input_dev(dev);
>
> - input_reset_device(input_dev);
> + mutex_lock(&input_dev->mutex);
> + if (input_dev->users)
> + input_dev_toggle(input_dev, true);
> + mutex_unlock(&input_dev->mutex);
>
> return 0;
> }
> --
> 1.7.8.6
>
Ping. Any input on the patch above?
-Oskar
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] input: don't call input_dev_release_keys() in resume
2013-03-07 14:01 [PATCH] input: don't call input_dev_release_keys() in resume oskar.andero
2013-04-04 14:57 ` Oskar Andero
@ 2013-04-04 16:33 ` Dmitry Torokhov
2013-04-05 8:57 ` Oskar Andero
2013-07-05 7:46 ` Oskar Andero
1 sibling, 2 replies; 6+ messages in thread
From: Dmitry Torokhov @ 2013-04-04 16:33 UTC (permalink / raw)
To: oskar.andero; +Cc: linux-kernel, linux-input, Aleksej Makarov
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...
Thanks.
--
Dmitry
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] input: don't call input_dev_release_keys() in resume
2013-04-04 16:33 ` Dmitry Torokhov
@ 2013-04-05 8:57 ` Oskar Andero
2013-07-05 7:46 ` Oskar Andero
1 sibling, 0 replies; 6+ messages in thread
From: Oskar Andero @ 2013-04-05 8:57 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: linux-kernel@vger.kernel.org, linux-input@vger.kernel.org,
Makarov, Aleksej
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.
You're absolutely right. But I guess you also see the case that the
patch is trying to fix, right?
To explain our use-case: We have a physical camera button on some devices.
When the user long-presses the button, the system will wake up and jump
directly in to the camera application.
> Maybe we should release the keys during suspend time? I am not sure how
> Android infrastructure will react to this though...
That sounds like a good idea! Let me do some testing on that.
Thanks!
-Oskar
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] input: don't call input_dev_release_keys() in resume
2013-04-04 16:33 ` Dmitry Torokhov
2013-04-05 8:57 ` Oskar Andero
@ 2013-07-05 7:46 ` Oskar Andero
2013-07-12 7:44 ` Oskar Andero
1 sibling, 1 reply; 6+ messages in thread
From: Oskar Andero @ 2013-07-05 7:46 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: linux-kernel@vger.kernel.org, linux-input@vger.kernel.org,
Makarov, Aleksej
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] input: don't call input_dev_release_keys() in resume
2013-07-05 7:46 ` Oskar Andero
@ 2013-07-12 7:44 ` Oskar Andero
0 siblings, 0 replies; 6+ messages in thread
From: Oskar Andero @ 2013-07-12 7:44 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: linux-kernel@vger.kernel.org, linux-input@vger.kernel.org,
Makarov, Aleksej
On 09:46 Fri 05 Jul , Oskar Andero wrote:
> 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?
Ping. Any thoughts on this?
Thanks!
-Oskar
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-07-12 7:44 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-07 14:01 [PATCH] input: don't call input_dev_release_keys() in resume oskar.andero
2013-04-04 14:57 ` Oskar Andero
2013-04-04 16:33 ` Dmitry Torokhov
2013-04-05 8:57 ` Oskar Andero
2013-07-05 7:46 ` Oskar Andero
2013-07-12 7:44 ` Oskar Andero
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).