关于android4.1中的背光灯和按键灯

本文讨论了手机按键LED灯与earlysuspend功能的关系,分析了不同层级软件对LED灯的不同命名方式,并最终确定了将LED灯与背光灯在earlysuspend阶段一起关闭的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先:请上层应用确认,目前手机按键上对应的LED灯叫什么名字。因为我们的驱动中以及PCB中对这三个灯的命名为 led-keyboard。而上层对灯的分类比较多了:

参考:hardware/libhardware/include/hardware/lights.h

 39 #define LIGHT_ID_BACKLIGHT          "backlight"
 40 #define LIGHT_ID_KEYBOARD           "keyboard"
 41 #define LIGHT_ID_BUTTONS            "buttons"
 42 #define LIGHT_ID_BATTERY            "battery"
 43 #define LIGHT_ID_NOTIFICATIONS      "notifications"
 44 #define LIGHT_ID_ATTENTION          "attention"
 45 #define LIGHT_ID_FLASHLED       "flashled"

驱动中把这几个灯叫什么无关紧要,反正在HAL层中我们需要重新去映射他们,在这里我只是想说明,千万不要光看名字去对号入坐,因为没人去保证他们的一致性,入乡随俗才是正道!

果然上层多这几个LED的名字是light_buttons。

记住一点,任何时候都不要让上层适应底层!上层说这是buttons light,那我们就要说,这是对的。然后我们悄悄地把自己的keyboard light 穿个写着buttons light的马甲!


在确认了HAL层工作正常后,一直怀疑上层的调用逻辑可能存在问题,再和上层同事一同调查后认为,上层原生逻辑没有问题, 今天测试人员说这个bug解决了。疑惑,最后跟踪kernel的最新提交发现在kernel仓库的新提交中early suspend 功能被打开(以前一 直是关闭状态),而驱动kernel/drivers/leds/leds-XXXX- kb.c在earlysuspend时会关闭这三个灯。因此,从用户角度看,这三个灯好像OK了。这样的流程类似于将背光灯和这几个LED灯捆绑在了一 起。因为进入early suspend时总会关闭背光和这几个LED。现在就用这样的逻辑吧。因为既然google在上层没有动作,那一定有他的道理。google可能真的认为背光和buttons light就应该被绑在一起吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YasinLeeX

再来一杯西湖龙井。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值