解决休眠底电流过大调试步骤

Comment

Dear customer 

Ok, you can try solution 00024639 , may be it's related with mipi ulps mode . 


Thanks

我将LCD屏摘掉电流是可以下得去的,为2.2mA,我先检查屏的影响。谢谢!

Dear customer 

make "target_cont_splash_screen" function in lk return 0 . 

change cont_splash_enabled to 0 in mdp_pdata structure @ board file . 

Thanks

Dear customer 

please disable continue splash display . 

Thanks

Dear customer 

Change USE_OPENGL_RENDERER to false . 
And change composition to mdp : 
adb shell setprop debug.composition.type mdp 
adb shell stop 
adb shell start 

And use follow method to get mdp and gpu clk : 

adb shell mount –t debugfs none /sys/kernel/debug 
adb shell cat /sys/kernel/debug/clk/grp_3d_clk/rate ( grp_3d_p_clk ) 
adb shell cat /sys/kernel/debug/clk/mdp_clk/rate 

'rate' is the clock value as requested by the software. 'rate' should be a stable value when in suspend state. please get it, and we can compare with sample phone. 

Thanks

Dear customer 
下面是我另外提得case的回复: 
I am not meaning to get the value of kgsl-3d0 interrupts count once, but check its value regularly (ex, 1 time every second) when enter sleep. 

If its value dose not increase during sleep, then we are sure the 3d application is turely sleeping. 

Thanks 

我按照他所说的,在休眠稳定后马上插上USB查看kgsl-3d0的值是1131,然后再拔掉USB进休眠,再插上USB查看kgsl-3d0的值是1133,基本上没有变化,(屏正常显示的时候kgsl-3d0值变化很快),那就是kgsl-3d0已经休下去了。

Through your two log, my analysis result as: 
1.From dmesg_3.txt, it looks there is a modem task will wake up the cpu. 
2.From dmesg_4.txt, it looks GRP_3D_P_CLK is not close.I doubt there is a 3d application works and don't sleep. 
My suggestions as: 
First, you'd better submit a case to display team to check "GRP_3D_P_CLK is not close" and confirm the phone can sleep in the fight mode. 

dmesg_3.txt 是在普通模式下的log 

dmesg_4.txt 是在飞行模式下的log

请查看log

Dear customer: 
Please confirm your phone works in the flight mode. 
Thanks! 

2013/04/09

Dear customer: 
It looks GRP_3D_P_CLK is not close.It is a 3D graphical's clock. 
Please check wether or not there is a 3d application work and it don't sleep. 

dear customer: 

echo 1 >/sys/module/pm2/parameters/debug_mask 

To enable wakeup IRQ's debug mask 
echo 1 > /sys/module/msm_show_resume_irq/parameters/debug_mask 

kmesg.

我打开了那个clock——name,请查看附件

Dear customer: 
Through the call, I know your question is how to follow "task smdcntl0 keep the lock", but before that please do a test as: 
Please modify the code in the clock_debug_print_enabled() from $(AP)/kernel/arch/arm/mach-msm/clock-debug.c as the following way. 
change "// pr_info("\t%s\n", clk->dbg_name);" to "pr_info("\t%s\n", clk->dbg_name);" 
Then re-build boot.img by "make bootimage" and upload 

dear customer: 

<6>[ 1812.919621] [(1980-01-06 01:37:46.110281703 UTC)] [cpuid: 0] Enabled clock count: 18 
<6>[ 1812.919859] [(1980-01-06 01:37:46.110523370 UTC)] [cpuid: 0] wakeup wake lock: smdcntl0 

task smdcntl0 持锁,请检查这个任务。 

谢谢

附件是我打的dmesg的log,adb shell里面不能使用grep,不好意思。您将就着看。

Please do the following test: 
在执行suspend动作之前先 echo 1> /data/debug/clk/debug_suspend,之后拔下USB,等系统睡眠后再联上usb,通过 adb shell dmesg | grep 'Enabled clock' 看看clk的情况。 

The following info is an example normal sleep log in the 7x27A platform and you can give me your log. 

<6>[ 234.097167] AHB_M_CLK 
<6>[ 528.405976] AHB_S_CLK <6>[ 234.097167] AHB_S_CLK 
<6>[ 528.405976] CSI0_CLK <6>[ 234.097167] CSI0_CLK 
<6>[ 528.405976] CSI1_CLK <6>[ 234.097167] CSI1_CLK 
<6>[ 528.405976] dsi_esc_clk <6>[ 234.097167] dsi_esc_clk 
<6>[ 528.405976] DSI_REF_CLK <6>[ 234.097167] DSI_REF_CLK 
<6>[ 528.405976] EBI1_CLK <6>[ 234.097167] EBI1_CLK 
<6>[ 528.405976] EBI2_CLK <6>[ 234.097167] EBI2_CLK 
<6>[ 528.405976] MDP_DSI_P_CLK <6>[ 234.097167] MDP_DSI_P_CLK 
<6>[ 528.405976] PBUS_CLK <6>[ 234.097167] PBUS_CLK 
<6>[ 528.405976] PCM_CLK <6>[ 234.097167] PCM_CLK 
<6>[ 528.405976] SDC2_CLK <6>[ 234.097167] ebi_acpu_clk 
<6>[ 528.405976] SDC2_P_CLK <6>[ 234.097167] Enabled clock count: 12 

没加过clock

Dear customer: 
MODM: 20136317 SLEEP: MOD_ENTER_TCXO: 000013b9 00000000 00000000 //睡眠的时间很短,正常睡眠的机器,这个值会大很多,是:06ddcdb5 
MODM: 20141286 SLEEP: MOD_TCXO_END: 00000000 00000001 00000000 //唤醒的原因是timetick interrupt,就是说系统因为定时器到时而产生中断唤醒机 
Do you add some new clock in the modem? 
Thanks! 
 

Dear customer: 
I'm sorry, there is no process temporarily.If there is some good news, I'll connect you at once. 

按照您说的,把检测CPU温度的进程关掉了,log也没显示,但测出来的底电流跟刚开始一样!电流没有变化。

Dear customer: 
init.qcom.post_boot.sh is in the $(AP)/device/qcom/common/rootdir/etc/*.It looks it is in the system.img. 
You need exec "make systemimage" to build new system.img. 
Thanks! 

Dear customer: 
The ThermalDaemon will detect the temperature of the cpu, if the temperature is too high the frequency of the cpu will be reduced. 
I think the detect speed is too high. You can test to stop it by cancelling "start thermald" in the init.qcom.post_boot.sh. 

附件传hal层的log,请查收。 
E/ThermalDaemon( 887): Sensor 'MSM_THERM' - 21*C (21504) 
上面那句话好像休眠的时候都在打印,每隔大概半秒左右!

按照你最后的要求,重新上传!

上传dump_sym 和 dump_voters

Dear customer: 
There is the new info. 
First, please do the following work before you get the smemlog and voters_log: 
1.adb shell insmod /system/lib/modules/sleep_monitor.ok; 
2.adb shell echo 3 > /sys/class/sleep_monitor/sleepm/control. 

Then, when you collect the smem log, please do "adb shell cat /mnt/debugfs/smem_log/dump_sym_cont > sleepdebug.txt" for a 2 mins after you have got the smemlog and voters_log. 

Last, upload smemlog, voters_log and sleepdebug.txt to me. 

Dear customer: 
We can know the bp is not sleep because there are something against sleep through 
"MODM: 30498218 SLEEP: NO_SLEEP_NEW: 00000000 00000000 00000001 
MODM: 30705106 SLEEP: NO_SLEEP_NEW: 00000000 00000000 00004005 
MODM: 30705803 SLEEP: NO_SLEEP_NEW: 00000000 00000000 00000001" in the rpm log. 
Please upload the smemlog and voters_log again as: 
"adb pull /data/debug/smem_log/dump_sym;adb pull /data/debug/smem_log/dump_voters". 

按照电话讲的,我将内核和share mem的log重新打了一下。

Sorry customer: 
I can't get more info from your smem log in the attachment.There is a way to get the more accurate log as the following info. 
1 先连接TRACE,用attach让手机跑起来。 
2.按power键,让手机进入sleep状态,等待5s,按power键让系统起来。 
(目的是可以看来系统sleep状态是否正常) 
3. 起来后立刻break位,用下面方法将smem log导出来。 
(1). do smemlog.cmm脚本抓取smem log 
(2). 打开MS-DOS 
(3). 将MS-DOS 中CD 到xxxx\modem_proc\tools\debug目录 
(4). 在已生成.lst文件目录下执行 
smem_log.pl > smem.log 
会将生成的.lst文件生成smem.log文件 

补上上传的smem log。

现在我烧了我们最新的软件版本,换上最新的QCN,底电流是15mA左右,内核log附件。共享内存的log我再研究下,晚些时候传上来。

Dear customer: 
You can know what's the smem log refer to "80-VR692-1_C_SMEM_Log_User_Guide". 
Thanks! 

Dear customer: 
You can get share memory as the following info. 
#mkdir /data/debug 
#mount -t debugfs debugfs /data/debug 
The /data/debug/smem_log/dump_sym is the share memory log. 
Thanks! 

dear customer: 

1.检查QCN是否正确烧写 
2.检查硬件电路 
3.检查AP侧是否睡眠(内核log) 
4.检查modem侧是否睡眠(共享内存log) 

谢谢

转自:http://blog.csdn.net/dwyane_zhang/article/details/8786407
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分析APSS子系统不休眠的具体步骤可以按照以下方式进行: 1. 收集信息: - 确认APSS子系统的具体硬件配置和驱动程序版本。 - 查看系统日志,特别是与APSS子系统相关的日志,以了解任何错误或警告信息。 - 收集其他相关的系统信息,例如操作系统版本、应用程序列表等。 2. 检查电源管理设置: - 确保操作系统的电源管理设置正确配置,以便允许APSS子系统进入休眠状态。 - 检查设备驱动程序是否支持电源管理功能,并更新到最新版本。 3. 检查应用程序和进程: - 检查正在运行的应用程序和进程,确定是否有某个应用程序或进程阻止了APSS子系统进入休眠状态。 - 尝试关闭或卸载可能有影响的应用程序,并观察是否解决了问题。 4. 使用调试工具: - 使用系统调试工具来检查系统状态和进程,以确定是否有其他因素导致APSS子系统不休眠。 - 可以使用性能监视器、任务管理器或其他调试工具来检查CPU、内存、磁盘等资源的使用情况。 5. 检查硬件故障: - 检查硬件设备是否存在故障或损坏,例如电源供应问题、电缆连接问题等。 - 可以尝试更换或修复相关硬件设备,然后再次测试。 6. 更新驱动程序和固件: - 确保所有相关的驱动程序和固件都是最新版本。可以访问设备制造商的官方网站来获取最新的驱动程序和固件更新。 7. 寻求专业帮助: - 如果以上步骤无法解决问题,可以咨询设备制造商、操作系统提供商或其他专业技术支持人员,以获取更深入的分析和解决方案。 请注意,以上步骤仅供参考,具体的分析步骤可能因系统配置和环境而异。在进行任何更改之前,请确保备份重要数据,并小心操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值