[alsa-devel] [PATCH] ASoC: Jack: add configurable option for irq_flag

Omair M. Abdullah omair.m.abdullah at intel.com
Sun Feb 17 07:37:25 CET 2013

On Fri, Feb 15, 2013 at 12:17:27PM +0000, Mark Brown wrote:
> On Fri, Feb 15, 2013 at 12:40:00PM +0530, Omair M. Abdullah wrote:
> > This patch is mainly to handle GPIOs where there is some toggling of the GPIO
> > lines due to the switch bouncing, and the debounce time cannot be increased
> > further due to other constraints. In such cases, providing the specific
> > edge on which to trigger the interrupt helps increase the robustness.
> >      ___   _                _   _________
> > e.g.    |_| |______________| |_|
> > insert followed by removal, where we want to trigger on the falling edge in both
> > cases.
> This doesn't make much sense to me, it's a *very* non-obvious change and
> it doesn't reflect what's actually happening well.  If you happen to be
> lucky and get no bounce it'll fail.  If it's working on your system
> there is a fair element of luck in there.
> It sounds like all you're looking for here is a better debounce
> algorithm, for example one that delays for a bit then starts polling the
> GPIO state at a higher rate and declares a result when the GPIO state
> doesn't change for a few polls.
We are using a polling mechanism in our system to check the jack state a few
times. But what we observed is that we always get a bounce.

Also, we do have a system where we are using the snd_soc_jack_gpio code for a
codec interrupt through a GPIO line, like Ramesh mentioned - even if it is just
for re-using the software debounce mechanism. In such cases, the interrupt would
be triggered on one edge only. Maybe that is not the original intent the of that

More information about the Alsa-devel mailing list