Input: bf54x-keys - fix system hang when pressing a key
We need to use the nosync version of disable_irq so that we don't hang in the IRQ handler as we don't ACK the interrupt until later. This used to work regardless, but at some point, the IRQ behavior changed. Not sure when exactly. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
eb8bff85c5
commit
9e49f6c133
|
@ -162,7 +162,7 @@ static irqreturn_t bfin_kpad_isr(int irq, void *dev_id)
|
||||||
input_sync(input);
|
input_sync(input);
|
||||||
|
|
||||||
if (bfin_kpad_get_keypressed(bf54x_kpad)) {
|
if (bfin_kpad_get_keypressed(bf54x_kpad)) {
|
||||||
disable_irq(bf54x_kpad->irq);
|
disable_irq_nosync(bf54x_kpad->irq);
|
||||||
bf54x_kpad->lastkey = key;
|
bf54x_kpad->lastkey = key;
|
||||||
mod_timer(&bf54x_kpad->timer,
|
mod_timer(&bf54x_kpad->timer,
|
||||||
jiffies + bf54x_kpad->keyup_test_jiffies);
|
jiffies + bf54x_kpad->keyup_test_jiffies);
|
||||||
|
|
Loading…
Reference in New Issue