static void input_handle_event(struct input_dev *dev,unsigned int type, unsigned int code, int value)
{
...
case EV_KEY:
if (is_event_supported(code, dev->keybit, KEY_MAX) &&
!!test_bit(code, dev->key) != value) {//这次来的是否为新的键值
if (value != 2) {
__change_bit(code, dev->key);//通过异或^操作,反转code对应的bitmap,如果value等于2,那么将忽略该按键
if (value)
input_start_autorepeat(dev, code);//键盘按下,那么开启定时检测,这样可以出现连续输入的效果
}
disposition = INPUT_PASS_TO_HANDLERS;
}
break;
...
}