Commit bf7f5316cbacbcb7d3c337eba36322cab255dec0
Committed by
Dmitry Torokhov
1 parent
e89e29b858
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
Input: tca8418_keypad - add support for shared interrupt
Signed-off-by: Alban Bedel <alban.bedel@avionic-design.de> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Showing 1 changed file with 7 additions and 3 deletions Side-by-side Diff
drivers/input/keyboard/tca8418_keypad.c
... | ... | @@ -224,16 +224,18 @@ |
224 | 224 | if (error) { |
225 | 225 | dev_err(&keypad_data->client->dev, |
226 | 226 | "unable to read REG_INT_STAT\n"); |
227 | - goto exit; | |
227 | + return IRQ_NONE; | |
228 | 228 | } |
229 | 229 | |
230 | + if (!reg) | |
231 | + return IRQ_NONE; | |
232 | + | |
230 | 233 | if (reg & INT_STAT_OVR_FLOW_INT) |
231 | 234 | dev_warn(&keypad_data->client->dev, "overflow occurred\n"); |
232 | 235 | |
233 | 236 | if (reg & INT_STAT_K_INT) |
234 | 237 | tca8418_read_keypad(keypad_data); |
235 | 238 | |
236 | -exit: | |
237 | 239 | /* Clear all interrupts, even IRQs we didn't check (GPI, CAD, LCK) */ |
238 | 240 | reg = 0xff; |
239 | 241 | error = tca8418_write_byte(keypad_data, REG_INT_STAT, reg); |
... | ... | @@ -374,7 +376,9 @@ |
374 | 376 | client->irq = gpio_to_irq(client->irq); |
375 | 377 | |
376 | 378 | error = request_threaded_irq(client->irq, NULL, tca8418_irq_handler, |
377 | - IRQF_TRIGGER_FALLING | IRQF_ONESHOT, | |
379 | + IRQF_TRIGGER_FALLING | | |
380 | + IRQF_SHARED | | |
381 | + IRQF_ONESHOT, | |
378 | 382 | client->name, keypad_data); |
379 | 383 | if (error) { |
380 | 384 | dev_dbg(&client->dev, |