新路程------按键上报失败

之前在init函数里只配置了这个:

set_bit(EV_KEY, gpio_hyc->evbit);
set_bit(KEY_HYC1, gpio_hyc->keybit);
set_bit(KEY_HYC2, gpio_hyc->keybit)

结果发现input_report_key(gpio_hyc, KEY_HYC1, 1);
input_sync(gpio_hyc);失败

这个input_sync(gpio_hyc)如果没有,那么input子系统不会去唤醒上报的线程,那个线程会一直等着wake;

追了一下发现卡在了

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);
if (value)
input_start_autorepeat(dev, code);
else
input_stop_autorepeat(dev);
}


disposition = INPUT_PASS_TO_HANDLERS; 也就是没有跑到这导致后面没有上报
}
break;

于是猜了一下,由于dev->keybit配置了,dev->key没有配置,于是在init里加了两句

set_bit(KEY_HYC1, gpio_hyc->key);
set_bit(KEY_HYC2, gpio_hyc->key);

于是搞定了,但是没有搜到相关资料,只能说侥幸

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值