On Thu, May 14, 2015 at 05:34:50AM +0300, Evgeniy Dushistov wrote: > max7359_keypad: Do not set MAX7359_CFG_INTERRUPT flag. > In datasheet of max7359, there is description of this flag: > 0 - INT cleared when FIFO empty, > 1 - INT cleared after host read. In this mode, I2C should read > FIFO until interrupt condition removed, or further INT may be lost. > > So, if we set this flag, we have to read FIFO until it become > empty. But in interrupt we read FIFO just once. > This lead to "keyboard" hang until reboot, if we press > several keys, because of interrupt handler read just one > "press" from FIFO and clear interrupt. > > Signed-off-by: Evgeniy A. Dushistov <dushistov@xxxxxxx> Applied, thank you. > --- > drivers/input/keyboard/max7359_keypad.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/input/keyboard/max7359_keypad.c b/drivers/input/keyboard/max7359_keypad.c > index faa6da5..4e35904 100644 > --- a/drivers/input/keyboard/max7359_keypad.c > +++ b/drivers/input/keyboard/max7359_keypad.c > @@ -166,7 +166,6 @@ static void max7359_close(struct input_dev *dev) > static void max7359_initialize(struct i2c_client *client) > { > max7359_write_reg(client, MAX7359_REG_CONFIG, > - MAX7359_CFG_INTERRUPT | /* Irq clears after host read */ > MAX7359_CFG_KEY_RELEASE | /* Key release enable */ > MAX7359_CFG_WAKEUP); /* Key press wakeup enable */ > > -- > 2.3.6 > > -- > /Evgeniy -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html