From: Felipe Balbi <hidden> Date: 2011-06-13 21:16:52
there's no need for that workqueue anymore.
Get rid of it and move to threaded IRQs
instead.
Signed-off-by: Felipe Balbi <redacted>
---
compile tested only. I need someone to reply with
a Tested-by tag.
drivers/input/keyboard/lm8323.c | 23 ++++-------------------
1 files changed, 4 insertions(+), 19 deletions(-)
@@ -675,7 +663,6 @@ static int __devinit lm8323_probe(struct i2c_client *client,lm->client=client;lm->idev=idev;mutex_init(&lm->lock);-INIT_WORK(&lm->work,lm8323_work);lm->size_x=pdata->size_x;lm->size_y=pdata->size_y;
@@ -746,9 +733,8 @@ static int __devinit lm8323_probe(struct i2c_client *client,gotofail3;}-err=request_irq(client->irq,lm8323_irq,-IRQF_TRIGGER_FALLING|IRQF_DISABLED,-"lm8323",lm);+err=request_threaded_irq(client->irq,NULL,lm8323_irq,+IRQF_TRIGGER_FALLING,"lm8323",lm);if(err){dev_err(&client->dev,"could not get IRQ %d\n",client->irq);gotofail4;
@@ -783,7 +769,6 @@ static int __devexit lm8323_remove(struct i2c_client *client)disable_irq_wake(client->irq);free_irq(client->irq,lm);-cancel_work_sync(&lm->work);input_unregister_device(lm->idev);
From: Leigh Brown <hidden> Date: 2011-06-19 19:00:13
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.
--
diff --git a/drivers/input/keyboard/lm8323.c
b/drivers/input/keyboard/lm8323.c
index 3b21f42..ab0acaf 100644
From: Felipe Balbi <hidden> Date: 2011-06-19 19:56:06
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 ?
--
balbi
From: Leigh Brown <hidden> Date: 2011-06-19 22:01:43
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:
quoted
Many thanks for trying to assist me with my problem. To recap,
yeah, no problem ;-)
quoted
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.
From: Felipe Balbi <hidden> Date: 2011-06-20 08:26:12
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:
quoted
Hi,
On Sun, Jun 19, 2011 at 07:00:13PM +0000, Leigh Brown wrote:
quoted
Many thanks for trying to assist me with my problem. To recap,
yeah, no problem ;-)
quoted
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 ;-)
--
balbi
From: Leigh Brown <hidden> Date: 2011-06-20 19:02:27
This patch, which should be applied on top of Felipe's
"input: keypad: lm8323: convert to threaded IRQ" patch, fixes the issue
of the Nokia N810 keypad stopping responding if multiple key events
occur
in quick succession.
Signed-off-by: Leigh Brown <redacted>
---
drivers/input/keyboard/lm8323.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/input/keyboard/lm8323.c
b/drivers/input/keyboard/lm8323.c
index 3b21f42..ab0acaf 100644
On Mon, Jun 20, 2011 at 08:02:27PM +0100, Leigh Brown wrote:
This patch, which should be applied on top of Felipe's
"input: keypad: lm8323: convert to threaded IRQ" patch, fixes the issue
of the Nokia N810 keypad stopping responding if multiple key events
occur
in quick succession.
Signed-off-by: Leigh Brown <redacted>