13 Jun 2011 23:16
[PATCH] input: keypad: lm8323: convert to threaded IRQ
Felipe Balbi <balbi <at> ti.com>
2011-06-13 21:16:52 GMT
2011-06-13 21:16:52 GMT
there's no need for that workqueue anymore.
Get rid of it and move to threaded IRQs
instead.
Signed-off-by: Felipe Balbi <balbi <at> ti.com>
---
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(-)
diff --git a/drivers/input/keyboard/lm8323.c b/drivers/input/keyboard/lm8323.c
index 71f744a8..3b21f42 100644
--- a/drivers/input/keyboard/lm8323.c
+++ b/drivers/input/keyboard/lm8323.c
<at> <at> -146,7 +146,6 <at> <at> struct lm8323_chip {
/* device lock */
struct mutex lock;
struct i2c_client *client;
- struct work_struct work;
struct input_dev *idev;
bool kp_enabled;
bool pm_suspend;
<at> <at> -162,7 +161,6 <at> <at> struct lm8323_chip {
#define client_to_lm8323(c) container_of(c, struct lm8323_chip, client)
#define dev_to_lm8323(d) container_of(d, struct lm8323_chip, client->dev)
-#define work_to_lm8323(w) container_of(w, struct lm8323_chip, work)
(Continue reading)
> 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 ?
RSS Feed