阅读:5614回复:1
Amlogic平台suspend后遥控器无法唤醒问题
问题现象:
使用遥控器POWER键使盒子进入suspend待机后,无法用遥控器唤醒盒子。 分析: uboot中power键码值的修改检查: gxl_p212_v1.h: #define CONFIG_IR_REMOTE_USE_PROTOCOL 0 // 0:nec 1:duokan 2:Toshiba 3:rca 4:rcmm正确。 dts中power键码值的修改检查: REMOTE_KEY(0xdc,1) //POWER也正确。 kl映射文件确认: key 1 POWER #POWER也正确没错。 ========================================================= 想不出来哪里的问题了。 最后排查发现: 当我们进入suspend之后,kernel将所有的外设驱动都进入了suspend休眠,也包括IR红外,只有uboot在工作。这个时候,我们按下遥控器的POWER键,是uboot接收到POWER键,uboot切换IO口唤醒kernel了,kernel的红外驱动里面的resume函数判断如果是按键唤醒的,驱动会生成一个POWER按键的按键事件向上层: if (get_resume_method() == REMOTE_WAKEUP) { 而KEY_POWER的定义在如下文件中,值为:116.所以android收到的是116,而不是1.所以无法唤醒。 include/dt-bindings/input/input.h:128:#define KEY_POWER 116 /* SC System Power Down */ 所以解决这个问题,我们可以修改这里的定义改为1,或者在android的kl按键映射文件中,增加 key 116 POWER就可以唤醒啦。 |
|
最新喜欢:zhaoyf...
|
沙发#
发布于:2019-12-19 09:16
思路清晰,条理清楚
|
|
|