MTK平台一个花屏重启问题的分析





在正常使用过程中,出现了异常重启,当时在聊QQ之后退出到桌面,然后就重启了。另外插着USB充电,根据FAQ [FAQ14812]如何快速对系统重启问题进行归类 提供以下信息,附件有完整的


ZZ_INTERNAL  信息是
Hardware Reboot,0,0,99,/data/core/,0,,HW_REBOOT,Mon Sep  7 09:17:02 CST 2015,1




SYS_REBOOT_REASON 的信息
WDT status: 5 fiq step: 0  exception type: 0
[LAST PC] CORE_0 PC = 0x200( + 0x0), FP = 0x802a000000008001, SP = 0xa6184200d064d030
[LAST PC] CORE_1 PC = 0x0( + 0x0), FP = 0x0, SP = 0x0
[LAST PC] CORE_2 PC = 0x0( + 0x0), FP = 0x0, SP = 0x0
[LAST PC] CORE_3 PC = 0x0( + 0x0), FP = 0x0, SP = 0x0


mcdi_wfi: 0x0
mcdi_r15: 0x0
SPM Suspend debug = 0x0
deepidle: 0x0
sodi: 0x87
spm_suspend: 0xf
clk_data: 0x1000103
clk_data: 0x81818180
clk_data: 0x1810100
clk_data: 0x7028202
clk_data: 0x1008180
clk_data: 0x81018101
clk_data: 0x1018080
clk_data: 0x0
cpu_dvfs_vproc_big: 0xff
cpu_dvfs_vproc_little: 0x38
cpu_dvfs_oppidx: little = 0xf7
cpu_dvfs_oppidx: big = 0x7
cpu_dvfs_status: 0xfc
gpu_dvfs_vgpu: 0x48
gpu_dvfs_oppidx: 0x1
gpu_dvfs_status: 0xfe
ptp_cpu_big_volt[0] = ff
ptp_cpu_big_volt[1] = ff
ptp_cpu_big_volt[2] = ff
ptp_cpu_big_volt[3] = ff
ptp_cpu_big_volt[4] = ff
ptp_cpu_big_volt[5] = ff
ptp_cpu_big_volt[6] = ff
ptp_cpu_big_volt[7] = ff
ptp_cpu_little_volt[0] = 5c
ptp_cpu_little_volt[1] = 5c
ptp_cpu_little_volt[2] = 5c
ptp_cpu_little_volt[3] = 5c
ptp_cpu_little_volt[4] = 5c
ptp_cpu_little_volt[5] = 5c
ptp_cpu_little_volt[6] = 5c
ptp_cpu_little_volt[7] = 5c
ptp_gpu_volt[0] = ff
ptp_gpu_volt[1] = ff
ptp_gpu_volt[2] = ff
ptp_gpu_volt[3] = ff
ptp_gpu_volt[4] = ff
ptp_gpu_volt[5] = ff
ptp_gpu_volt[6] = ff
ptp_gpu_volt[7] = ff
ptp_temp: little = ffffffffffffff29
ptp_temp: big = 29
ptp_temp: GPU = 29
ptp_status: 0xfe
thermal_temp1 = 36
thermal_temp2 = 35
thermal_temp3 = 36
thermal_temp4 = 255
thermal_temp5 = 255
thermal_status: 2
CPU 0
  irq: enter(0, 0) quit(0, 0)
  hotplug: 9, 47, 0x0
  cpu_dormant: 0xffffffffa7f00301
CPU 1
  irq: enter(0, 0) quit(0, 0)
  hotplug: 54, 
  cpu_dormant: 0x0
CPU 2
  irq: enter(0, 0) quit(0, 0)
  hotplug: 54, 
  cpu_dormant: 0x0
CPU 3
  irq: enter(0, 0) quit(0, 0)
  hotplug: 54, 
  cpu_dormant: 0x0
CPU 4
  irq: enter(0, 0) quit(0, 0)
  hotplug: 0, 
  cpu_dormant: 0x0
CPU 5
  irq: enter(0, 0) quit(0, 0)
  hotplug: 0, 
  cpu_dormant: 0x0
CPU 6
  irq: enter(0, 0) quit(0, 0)
  hotplug: 0, 
  cpu_dormant: 0x0
CPU 7
  irq: enter(0, 0) quit(0, 0)
  hotplug: 0, 
  cpu_dormant: 0x0


SYS_LAST_KMSG


ram console header, hw_status: 5, fiq step 0.
primary_disp, irtbit 0x2000004
[28330.253029]<0> (0)[229:surfaceflinger][DDP/ddp_manager]enable event FRAME_START on scenario primary_disp, irtbit 0x2000002
[28330.253047]<0> (0)[229:surfaceflinger][DISP]primary display is DIRECT_LINK mode now
[28330.253735]<0> (0)[385:UICompThread_0][DISP][ddp_idle_on]_disp_primary_path_exit_idle (primary_display_config_input_multiple) &&& 
[28330.253747]<0> (0)[385:UICompThread_0][DISP]low power in, enter=0. 
[28330.253840]powerkey_kick:primary_display_trigger:2,6
[28330.253884]<0> (0)[94:display_idle_de][ddp_idle]ret=0
[28330.253895]<0> (0)[94:display_idle_de][LP] end
[28330.256184]<0> (0)[134:bat_thread_kthr][Auxadc] [AUXADC] ch=3 raw=1544 data=678 
[28330.256399]<0> (0)[134:bat_thread_kthr][force_get_tbat] 678,671,1,722,10,30
[28330.256864]<0> (0)[134:bat_thread_kthr][dump_nter] mt6328_upmu_get_fg_nter_29_16 = 0x0
[28330.256882]<0> (0)[134:bat_thread_kthr][dump_nter] mt6328_upmu_get_fg_nter_15_00 = 0xa1e5
[28330.256899]<0> (0)[134:bat_thread_kthr][dump_car] upmu_get_fg_car_31_16 = 0x76d
[28330.256916]<0> (0)[134:bat_thread_kthr][dump_car] upmu_get_fg_car_15_00 = 0xc095
[28330.256940]<0> (0)[134:bat_thread_kthr][FGADC] 1,7136,588,3740,24,22,29,4025,4027,-167,0,0,1000,3907,1000,92,78,86,103
[28330.256960]<0> (0)[134:bat_thread_kthr]AvgVbat=(3892),bat_vol=(3907),AvgI=(0),I=(0),VChr=(4806),AvgT=(30),T=(30),pre_SOC=(22),SOC=(22),ZCV=(3740)
[28330.258541]<0>-(0)[134:bat_thread_kthr][GPIO]   513: modebefore1 set pin[58],addr=350,(ffffff8000036000,ffffff8000036350)
[28330.258558]<0>-(0)[134:bat_thread_kthr][GPIO]   543: mt_set_gpio_mode_base:pin:58, mode:0, value:0x10491249
[28330.260235]<0> (0)[134:bat_thread_kthr][BATTERY] Default CC mode charging : 145000, input current = 145000


[28330.267658]<0> (0)[134:bat_thread_kthr][fan5405] [0x0]=0xd0 [0x1]=0xf8 [0x2]=0x8e [0x3]=0x94 [0x4]=0xcb [0x5]=0x3 [0x6]=0x40 
[28330.271609]<0> (0)[134:bat_thread_kthr]UI_SOC=(22), resetBatteryMeter=(0)
[28330.272201]<0> (0)[134:bat_thread_kthr]battery_update.
[28330.272216]<0> (0)[134:bat_thread_kthr][mt_kpoc_power_off_check] , chr_vol=4806, boot_mode=0
[28330.272730]ADDLOG datagram_poll sk_queue_empty mask:0
[28330.272844]<0> (0)[695:netd]ADDLOG datagram_poll sk_queue_empty mask:0ADDLOG datagram_poll sk_queue_empty mask:0 (0)[225:healthd]healthd: battery p=-1 l=22 l2=50 v=3892 t=30.0 h=2 st=2 st2=4 ext=0 chg=a
[28330.274034]<0> (0)[225:healthd]healthd: battery p=-1 l=22 l2=50 v=3892 t=30.0 h=2 st=2 st2=4 ext=0 chg=a
[28330.274516]<0> (0)[225:healthd]healthd: battery p=-1 l=22 l2=50 v=3892 t=30.0 h=2 st=2 st2=4 ext=0 chg=a
[28330.274991]<0> (0)[225:healthd]healthd: battery p=-1 l=22 l2=50 v=3892 t=30.0 h=2 st=2 st2=4 ext=0 chg=a
....



请到PMS上申请patch:ALPS02222776 ,该patch只能降低出现概率,无法完全解决。

sodi模式下出现hardware reboot,

Exception Class: Hardware Reboot
Exception Type: Hardware Reboot 

WDT status: 5 fiq step: 0 exception type: 0
[LAST PC] CORE_0 PC = 0x200( + 0x0), FP = 0x802a000000008001, SP = 0xa6184200d064d030
[LAST PC] CORE_1 PC = 0x0( + 0x0), FP = 0x0, SP = 0x0
[LAST PC] CORE_2 PC = 0x0( + 0x0), FP = 0x0, SP = 0x0
[LAST PC] CORE_3 PC = 0x0( + 0x0), FP = 0x0, SP = 0x0

mcdi_wfi: 0x0
mcdi_r15: 0x0
SPM Suspend debug = 0x0
deepidle: 0x0
sodi: 0x87
spm_suspend: 0xf





如果要让问题完全不再复现,只能关闭sodi,关闭sodi对功耗略有影响(10mA左右)。

 

贵司可以自己权衡下。

 

1.        關閉SODI方法如下:

直接修改kernel-3.10\drivers\misc\mediatek\mach\mt6735\mt_idle_legacy.c


static in idle_Switch[NR_TYPES]={

1,

0,//soidle switch 这个改成0 ,可能M的和L的不一样,但是还是改这个值。

1,

1,

}



2.
check 有無正確關閉SODI的方法: 
Shell command: cat /sys/power/idle_state
 


soidle_switch=0


请修改 /kernel-3.18/drivers/misc/mediatek/base/power/spm_v1/mt_idle.c
#elif defined(CONFIG_ARCH_MT6735M)
/* Idle handler on/off */
static int idle_switch[NR_TYPES] = {
1, /* dpidle switch */
1, /* soidle switch */ ====>>>>修改为0
1, /* slidle switch */
1, /* rgidle switch */
2、修改后用adb查看cat /sys/kernel/debug/cpuidle/idle_state
结果中查看"variables dump"栏位,"soidle_switch=0"表示SODI关闭了
确认SODI关闭以后,retest,看能否复现


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值