lkml.org 
[lkml]   [2018]   [Feb]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [PATCH] Input: gpio_keys: Add level trigger support for GPIO keys
On Fri, Feb 9, 2018 at 11:23 AM, Baolin Wang <baolin.wang@linaro.org> wrote:
> On 9 February 2018 at 14:39, Dmitry Torokhov <dmitry.torokhov@gmail.com> wrote:
>> On Thu, Feb 8, 2018 at 10:08 PM, Baolin Wang <baolin.wang@linaro.org> wrote:
>>> On some platforms (such as Spreadtrum platform), the GPIO keys can only
>>> be triggered by level type.
>>
>> How do you stop the interrupt from re-triggering as long as the key
>> stays pressed?
>
> We will set the level type irq handler as handle_level_irq(), in this
> function, it will mask and ack the irq firstly.

Wouldn't be ambiguous?

1. User presses the key ->
a) we got edge followed by level signaling;
b) IRQ core masks line, calls handler, ACKs, unmasks;
c) somewhere here Press Event is sent;
d) we still have level... We get IRQ fired again? But see 1. It
obviously not the case.
2. User releases the key ->
...

So, the main question if I understood Dmitry correctly is the period
in time where IRQ line should be masked on one hand, and on the other
it will guarantee that user didn't release-press cylcle.

--
With Best Regards,
Andy Shevchenko

\
 
 \ /
  Last update: 2018-02-09 16:05    [W:0.042 / U:11.272 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site