现象
日志
简要日志
3,609: 12-30 13:13:25.983950 1216 1216 I [ 633.918732] (1)[1216:system_server]: active wakeup source: PMIC AuxADC wakelock
12-30 14:45:36.754140 1216 1216 I [ 643.931309] (0)[1216:system_server]: active wakeup source: PMIC AuxADC wakelock
详细日志
CPU 被待机唤醒了
12-30 13:13:25.983855 1216 1216 I [ 633.918637] (1)[1216:system_server]: PM: Wakeup pending, aborting suspend
12-30 13:13:25.983950 1216 1216 I [ 633.918732] (1)[1216:system_server]: active wakeup source: PMIC AuxADC wakelock
12-30 13:13:25.984019 1216 1216 E [ 633.918801] (1)[1216:system_server]: PM: Some devices failed to suspend, or early wake event detected
CPU 被待机唤醒了
12-30 14:45:36.754044 1216 1216 I [ 643.931213] (0)[1216:system_server]: PM: Wakeup pending, aborting suspend
12-30 14:45:36.754140 1216 1216 I [ 643.931309] (0)[1216:system_server]: active wakeup source: PMIC AuxADC wakelock
12-30 14:45:36.754207 1216 1216 E [ 643.931376] (0)[1216:system_server]: PM: Some devices failed to suspend, or early wake event detected
源码
kernel-4.4\drivers\misc\mediatek\pmic\mt6357\v1\pmic_auxadc.c
Z:\7.1\sp91_new\kernel-4.4\drivers\misc\mediatek\pmic\mt6357\v1\pmic_auxadc.c
void mt6357_auxadc_init(void)
{
HKLOG("%s\n", __func__);
wake_lock_init(&pmic_auxadc_wake_lock,
WAKE_LOCK_SUSPEND, "PMIC AuxADC wakelock");
mutex_init(&pmic_adc_mutex);
wake_lock_init(&mts_monitor_wake_lock,
WAKE_LOCK_SUSPEND, "PMIC MTS Monitor wakelock");
mutex_init(&mts_monitor_mutex);
/* Remove register setting which is set by PMIC initial setting in PL */
加log日志了,复现的时候再次确认
void pmic_auxadc_lock(void)
{
pr_notice("suhuazhi pmic_auxadc_lock");
wake_lock(&pmic_auxadc_wake_lock);
mutex_lock(&pmic_adc_mutex);
}
void pmic_auxadc_unlock(void)
{
pr_notice("suhuazhi pmic_auxadc_unlock");
mutex_unlock(&pmic_adc_mutex);
wake_unlock(&pmic_auxadc_wake_lock);
}
PMIC AuxADC
PMIC: Power Management IC电源管理IC
作用
AUXADC 即通过读取电池电压来估测电池电量值。
http://blog.csdn.net/cuitianxiang/article/details/53411585
唤醒周期
这才是我关注的,后续更新,想加log后测试