关于分析系统suspend的底电流异常的方法

本文介绍了一种分析系统suspend状态下底电流异常的方法,包括检查硬件是否正确下电、时钟源是否关闭、GPIO状态是否合理等问题,并提供了高通平台的具体调试手段。

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

关于分析系统suspend的底电流异常的方法

关于如何分析飞行模式下底电流高的问题的方法:

1)硬件是否下电、
2)clock src是否没关、
3)gpio是否状态不对导致漏电、
4)压根没有suspend、AP suspend了但modem等其他子系统没有suspend
5)其他文档(硬件是否下电、clock src是否没关、gpio是否状态不对导致漏电、压根没有suspend、APsuspend了但modem等其他子系统没有suspend)

高通通过trace脚本,dump出来在AP cpu核系统suspend的情况下SOC的gpio状态。因为JTAG可以读取这些map好的寄存器的值。

关于suspend的注意事项

1)驱动suspend时,一般会对外设芯片置于省电模式,或者对外设芯片断电。断电前可能需要读取并保存寄存器的当前状态值,以便resume时需要恢复。
2)驱动suspend时,需要对gpio状态设置为防止漏电模式,根据硬件要求。
3)驱动resume时,根据设备是否被open了,需要修改gpio状态回外设工作的模式。
4)驱动resume时,根据设备是否被open了,需要重新恢复外设为工作状态,或者上电,但上电后,需要重新初始化外设寄存器,甚至需要恢复回suspend时的寄存器状态值。

另外关于系统功耗,一定要在所有功能外设模块都打开过一遍,或所有功能外设模块正在使用时,按power key进入suspend,然后等suspend时,测试功耗,这样可以检查哪些模块的驱动在suspend时没有关闭电源、clock和恢复gpio状态。如果没有使用此功能或者至少没有使用过此功能,那么此设备就没有打开过,那么即使suspend时漏了关闭电源、clock、漏了修改gpio状态,因为之前就没有打开,所以也就不会检查出来问题。这样测试功耗低,也发现不了什么驱动的bug。

具体参见我的《如何编写linux设备驱动》视频课程:
https://edu.51cto.com/course/17132.html

另外我的相关培训视频请看:
欢迎观看我发布的各个课程: https://edu.51cto.com/lecturer/8896847.html

转载于:https://blog.51cto.com/8906847/2367966

### 待机功耗高问题分析流程 #### AP侧待机功耗分析流程 当遇到待机功耗过高的情况时,可按照如下流程进行排查: 对于各个外设模块休眠漏电或未休眠的情况,通常需要通过硬件手段逐一移除外设设备(如TP, camera, LCD),并观察电流变化以确认具体引起漏电的模块[^3]。 针对GPIO/Subsys/PLL/Clock接口漏电的问题,可以通过特定命令检查各子系统的关闭状态。例如,在MTK平台上,可通过读取`PWR_STATUS`寄存器的状态位判断哪些子系统未能正常进入休眠模式。具体操作为查找日志中的"PWR_STATUS"关键字,并依据其二进制表示解析每一位的意义;也可以利用内核参数控制某些功能的行为,比如设置`slp_ck26m_on`和`slp_dump_regs`来获取更多调试信息[^4]。 若发现WakeLock阻止了系统进入深层次睡眠,则需进一步调查唤醒源。需要注意的是,如果之前存在由GPU引起的唤醒事件,请勿将其视为异常现象,因为此时可能处于Deepidle而非Suspend状态下[^2]。 最后,还需考虑Modem部分的影响。由于缺乏统一的方法论指导,这部分往往依赖于具体情况的具体处理方式。建议先尝试禁用飞行模式再测量静态电流水平,以此初步区分问题是来自应用处理器(AP)还是调制解调器(Modem)[^1]。 ```bash echo 1 > /sys/module/mt_sleep/parameters/slp_ck26m_on echo 1 > /sys/module/mt_sleep/parameters/slp_dump_regs ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值