Thread (7 messages) 7 messages, 3 authors, 2012-04-26

Re: [PATCH] Input: twl4030 power button: don't lose presses on resume

From: anish kumar <hidden>
Date: 2012-04-25 16:56:21
Also in: lkml

On Wed, 2012-04-25 at 15:26 +1000, NeilBrown wrote:
On Tue, 24 Apr 2012 22:09:19 -0700 Dmitry Torokhov
[off-list ref] wrote:
quoted
Hi Neil,

On Wed, Apr 25, 2012 at 12:21:39PM +1000, NeilBrown wrote:
quoted
If we press and release the power button before the press interrupt is
handled - as can happen on resume - we lose the press event so the
release event is ignored and we don't know what happened to cause the
wakeup.
I didn't understand this.If power button is waking up the device then
obviously power button interrupt handler is called right?If yes then how
can we lose the press event?Is user space not ready to take the event?
May be I didn't understand it properly.Can you kindly explain?
quoted
What kind of latency do you observe?
When I have debugging enabled, hundreds of milliseconds.

When I don't have debugging enabled ... it doesn't tell me, but I'm fairly
sure it is several tens of milliseconds and the button press can be quicker
than that.

If it will help I can try to instrument the driver and get some timings.
quoted
quoted
So make sure that each interrupt handled does generate an event.
Because twl4030 queues interrupt events we will see two interrupts
for a press-release even if we handle the first one later.  This means
that such a sequence will be reported as two button presses.  This
is unfortunate but is better than no button presses.
Possibly we could set the PENDDIS_MASK to disable queuing of
interrupts, but that might adversely affect other interrupt sources.
It looks like we'd have to modify every driver to ensure consistent
behavior as we do not have any guarantees on how long resume takes.
Maybe this is something that input core needs to implement?
Well if every driver is buggy....

I don't see how this could be implemented in the input core.  And even if it
was, you'd probably need to change each driver to interact with this new
functionality which would be much the same work as changing them to work with
the current functionality....
But maybe I have no imagination - if you can suggest a way that the input core
could support this without changing the drivers, I'm happy to try it out.

Thanks,
NeilBrown
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help