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

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) 

谢谢
 

你可能感兴趣的:(解决休眠底电流过大调试步骤)