diff mbox

input: keypad: lm8323: convert to threaded IRQ

Message ID a07cbd61db83c3308dd76f7c0f481477@doppler.thel33t.co.uk (mailing list archive)
State Awaiting Upstream, archived
Headers show

Commit Message

Leigh Brown June 19, 2011, 7 p.m. UTC
Hi Felipe,

Many thanks for trying to assist me with my problem. To recap,
I'm seeing the keypad lock-up on my N810 using this driver,
when I type quickly.

I tried your patch, and it doesn't fix the issue.  However, I've
read the datasheet for the lm8323 and it looks to me like the
interrupt should be level rather than edge triggered.

The following additional patch makes things work for me.  I
couldn't tell you if it's the correct thing to do but I can no
longer cause the keypad to lock-up by typing too fast.

Regards,

Leigh.

Comments

Felipe Balbi June 19, 2011, 7:56 p.m. UTC | #1
Hi,

On Sun, Jun 19, 2011 at 07:00:13PM +0000, Leigh Brown wrote:
> Many thanks for trying to assist me with my problem. To recap,

yeah, no problem ;-)

> I'm seeing the keypad lock-up on my N810 using this driver,
> when I type quickly.
> 
> I tried your patch, and it doesn't fix the issue.  However, I've
> read the datasheet for the lm8323 and it looks to me like the
> interrupt should be level rather than edge triggered.
> 
> The following additional patch makes things work for me.  I
> couldn't tell you if it's the correct thing to do but I can no
> longer cause the keypad to lock-up by typing too fast.

good good. Looks like IRQF_ONESHOT is what did the trick.

Did you check if IRQF_ONESHOT alone was enough ?
Leigh Brown June 19, 2011, 10:01 p.m. UTC | #2
On Sun, 19 Jun 2011 22:56:06 +0300, Felipe Balbi wrote:
> Hi,
>
> On Sun, Jun 19, 2011 at 07:00:13PM +0000, Leigh Brown wrote:
>> Many thanks for trying to assist me with my problem. To recap,
>
> yeah, no problem ;-)
>
>> I'm seeing the keypad lock-up on my N810 using this driver,
>> when I type quickly.
>>
>> I tried your patch, and it doesn't fix the issue.  However, I've
>> read the datasheet for the lm8323 and it looks to me like the
>> interrupt should be level rather than edge triggered.
>>
>> The following additional patch makes things work for me.  I
>> couldn't tell you if it's the correct thing to do but I can no
>> longer cause the keypad to lock-up by typing too fast.
>
> good good. Looks like IRQF_ONESHOT is what did the trick.
>
> Did you check if IRQF_ONESHOT alone was enough ?

I tried that first, but it didn't fix it, although it makes it a
little bit harder to trigger.  I've just tried again to be sure,
but I got a lock-up quite easily.

Regards,

Leigh.

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Felipe Balbi June 20, 2011, 8:26 a.m. UTC | #3
Hi,

On Sun, Jun 19, 2011 at 11:01:43PM +0100, Leigh Brown wrote:
> On Sun, 19 Jun 2011 22:56:06 +0300, Felipe Balbi wrote:
> >Hi,
> >
> >On Sun, Jun 19, 2011 at 07:00:13PM +0000, Leigh Brown wrote:
> >>Many thanks for trying to assist me with my problem. To recap,
> >
> >yeah, no problem ;-)
> >
> >>I'm seeing the keypad lock-up on my N810 using this driver,
> >>when I type quickly.
> >>
> >>I tried your patch, and it doesn't fix the issue.  However, I've
> >>read the datasheet for the lm8323 and it looks to me like the
> >>interrupt should be level rather than edge triggered.
> >>
> >>The following additional patch makes things work for me.  I
> >>couldn't tell you if it's the correct thing to do but I can no
> >>longer cause the keypad to lock-up by typing too fast.
> >
> >good good. Looks like IRQF_ONESHOT is what did the trick.
> >
> >Did you check if IRQF_ONESHOT alone was enough ?
> 
> I tried that first, but it didn't fix it, although it makes it a
> little bit harder to trigger.  I've just tried again to be sure,
> but I got a lock-up quite easily.

Ok, cool thanks... Can you send your patch as a proper patch (with your
Signed-off-by line and everything) saying that it fixes the lock up ?

My patch converts to threaded IRQ and yours fixes the triggering ;-)
diff mbox

Patch

diff --git a/drivers/input/keyboard/lm8323.c 
b/drivers/input/keyboard/lm8323.c
index 3b21f42..ab0acaf 100644
--- a/drivers/input/keyboard/lm8323.c
+++ b/drivers/input/keyboard/lm8323.c
@@ -734,7 +734,7 @@  static int __devinit lm8323_probe(struct i2c_client 
*client,
  	}

  	err = request_threaded_irq(client->irq, NULL, lm8323_irq,
-			  IRQF_TRIGGER_FALLING, "lm8323", lm);
+			  IRQF_TRIGGER_LOW|IRQF_ONESHOT, "lm8323", lm);
  	if (err) {
  		dev_err(&client->dev, "could not get IRQ %d\n", client->irq);