
POWER
文章平均质量分 64
那颗流星
提炼升华
展开
-
Linux下的uevent
查找linux的uevent节点(find /sys -name uevent),大概有1000多个,那这些节点是怎么实现的呢。drivers/base/core.c有如下代码,每创建一个device,都会创建一个event节点static ssize_t uevent_show(struct device *dev, struct device_attribute *attr,char *buf){ ... retval = kset->uevent_ops->ue..原创 2021-09-25 20:31:11 · 2232 阅读 · 0 评论 -
Android插拔usb亮屏流程
遇到一个问题,插拔usb,手机不亮屏。先来分析下,插拔usb亮屏流程。关键流程updatePowerStateLocked--->updateIsPoweredLockedprivate void updateIsPoweredLocked(int dirty) {... final boolean wasPowered = mIsPowered; mIsPowered = mBatteryManagerInternal.isPowered(BatteryManager.原创 2021-12-26 01:45:50 · 2141 阅读 · 0 评论 -
Linux下的power_supply小析
Android手机过power_supply的节点获取充电和电池信息,今天来分析下power_supply。先不讲那么多,用个demo来熟悉下#include <linux/module.h>#include <linux/platform_device.h>#include <linux/power_supply.h>struct mtk_charger_type { struct power_supply_desc usb_desc; struct p原创 2021-05-15 18:51:52 · 5321 阅读 · 0 评论 -
通过电流分解来分析底电流异常
遇到底电流大的情况,一般可以先用摘除外设的方式,如果还有问题,可以用电流分解的方式来找到功耗异常的那一路电源。如下图,某平台提供的cpu休眠后的各路电源的消耗情况。可以先用万用表量各路的电压,如果电压都正常,再来对比电流。...原创 2020-07-12 16:15:14 · 1713 阅读 · 0 评论 -
alarm唤醒系统过程分析
Android的aralm可以唤醒系统,先看ararm调用过程http://androidxref.com/9.0.0_r3/xref/frameworks/base/core/java/android/app/AlarmManager.javapublic void set(@AlarmType int type, long triggerAtMillis, PendingIntent...原创 2019-09-26 19:22:36 · 3176 阅读 · 0 评论 -
Android唤醒锁实现
Android使用唤醒锁的方法PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, this.getClass().getName());//持有唤醒锁wakeLock.setRefe...原创 2019-08-31 14:42:32 · 1697 阅读 · 0 评论 -
记一次tp唤醒函数异常导致的lcd唤醒慢
机器休眠后,按电源键唤醒,2s多屏幕才亮,查看内核信息,没发现什么报错信息。先检查lcd的初始化代码,去掉多余的延时,唤醒时间依然很长。继续分析内核信息,从按下电源键到开背光,用时2s多,发现tp唤醒时间较长。直接修改tp的i2c地址(或者拔掉tp),让tp驱动不跑,唤醒时间就正常了。继续分析tp的唤醒函数。通过如下方法,把tp的唤醒的每个函数的执行时间都打印出来。long long...原创 2019-06-01 16:59:31 · 914 阅读 · 0 评论 -
记一次lcd休眠异常导致的底电流大
主板外设调试ok,测主板休眠电流,26mA。这里首先拔掉lcd,休眠底电流正常。根据以往套路,有几种可能,外设没进入休眠,电源控制异常,引脚状态不对。一般也容易排除问题。由于lcd和tp一体ic,需要同时看这两个驱动。先看tp驱动,由于是移植高通平台的代码,发现没进入休眠,修改代码,随fb进行休眠。再次测量电流,18mA。再次查看原理图,发现en使能引脚在休眠没有拉低,修改代码后发现t...原创 2019-04-14 01:11:16 · 2062 阅读 · 0 评论 -
Linux下的regulator调试
先看regular使用的小demo,如i2c8{ touchscreen@28 { vddcama-supply = <&xxxxx>; };}int ret;struct regulator *power;static int ts_probe(struct i2c_client *client,const struct...原创 2019-03-23 22:00:44 · 3896 阅读 · 1 评论 -
Android休眠调试总结
1.无法休眠 进入休眠后,如果系统不持有锁,将会写mem到/sys/power/state(可参考https://blog.youkuaiyun.com/mike8825/article/details/80420213),如果没走到这一步,即打印信息中没有suspend entry的打印,说明系统持由锁,这时可将锁打印出来。内核已经实现该接口,调用接口,可将下面的代码移植过去...原创 2018-07-21 02:45:12 · 4261 阅读 · 0 评论 -
内核wake_lock小析
kernel/power/base/power/wakeup.c/** * struct wakeup_source - Representation of wakeup sources * * @total_time: Total time this wakeup source has been active. * @max_time: Maximum time this wakeup ...原创 2018-05-23 18:11:53 · 2328 阅读 · 0 评论 -
按电源键休眠流程(framework层)
这里以Android6.0为例frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.javaPowerManager mPowerManager;private void powerPress(long eventTime, boolean interactive, int count) {...原创 2018-05-23 18:11:46 · 3199 阅读 · 0 评论 -
Android休眠流程(kernel层)
在按下电源键后,会调用autosuspend_enable()函数,可参考https://blog.youkuaiyun.com/mike8825/article/details/80423842system/core/libsuspend/autosuspend.cint autosuspend_enable(void){ autosuspend_init(); ...原创 2018-05-23 18:11:23 · 5913 阅读 · 1 评论 -
调试休眠和唤醒
原文链接http://blog.youkuaiyun.com/skywalkzf/article/details/7913887转载 2017-03-19 21:16:52 · 1285 阅读 · 0 评论 -
功耗优化方法
1、底电流调试(Rock Bottom Current Optimization)底电流在手机飞行模式下调试。每个平台的底电流数据可能不一样,具体可以参考release出来的Current Consumption Data文档或者release note。一般情况下的底电流参考数据上限是:512M RAM 1.1校准RF保证RF的PA、Antenna sw转载 2017-02-19 22:00:50 · 1465 阅读 · 0 评论 -
Linux电源管理-Runtime PM
原文链接http://blog.youkuaiyun.com/longwang155069/article/details/53080667转载 2016-12-11 21:40:59 · 707 阅读 · 0 评论 -
Android Power Management on i.MX6DQ/DL
Android Power Debug and OptimizationIntroductionAndroid Power Management on i.MX OverviewHow to do power optimization for Android on i.MXHow to check high power consumption on i.MXHow to debug sus转载 2016-06-06 16:03:39 · 1489 阅读 · 0 评论