Commit bf7f5316cbacbcb7d3c337eba36322cab255dec0

Authored by Alban Bedel
Committed by Dmitry Torokhov
1 parent e89e29b858

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,