android goToSleep无法进入deep sleep分析

1、内核kmsg打印分析deep sleep abort reson:

Abort: Callback failed on alarmtimer.0.auto in

2、发现已经注册了alarmtimer

console:/sys/class/rtc/rtc0 # ls -l
total 0
drwxr-xr-x 3 root root    0 2022-11-14 15:28 alarmtimer.0.auto

3、通过内核源码查找 grep -rn "d\.auto" 

drivers/base/platform.c:506:            dev_set_name(&pdev->dev, "%s.%d.auto", pdev->name, pdev->id);

也就是说注册驱动用PLATFORM_DEVID_AUTO

4、查找注册相关PLATFORM_DEVID_AUTO代码如下

kernel/time/alarmtimer.c:104:               PLATFORM_DEVID_AUTO, NULL, 0);

 5、kernel5.4 & kernel4.14差异对比

6、最终发现了是kernel modem driver注册了大量定时器timer_setup

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值