当前位置:编程学习 > wap >>

android 深度睡眠出现的问题

问题描述:
前提进入是深睡眠模式,按唤醒键1秒钟左右正常唤醒,如果快速按 不能点亮屏(也就是LCD驱动的resume没有执行)。
看打印信息:
/*********************************************正确信息************************************/
Freezing user space processes ... (elapsed 0.00 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
Suspending console(s) (use no_console_suspend to debug)
Mali<1>: mali_pm_suspend
cs42l51_suspend(): in...
drivers/gps/gpio.c(151) tcc_gps_suspend gps_trigger_flag(0)
read time 2011/03/06 03:14:00
tcc_rtc_setalarm
set alarm 2011/03/13 02:16:27 
RTC[C2] INT[9007] ALM[EF] IM[F] PEND[0] STR[00]read time 2011/03/06 03:14:00
read time 2011/03/06 03:14:00
drivers/char/tcc_bluetooth_sender.c(287) bf10_suspend suspend_flag 0
Vibrator: you want to sleep here !
tcc_adc_suspend in
tcc_adc_suspend out
dwc_otg_driver_suspend in
dwc_otg_driver_suspend out
tccfb_suspend:  
[#### CONFIG_PM ####] tcc_serial_suspend Port[1]
[#### CONFIG_PM ####] tcc_serial_suspend Port[0]
[MTD TCC] [PORT CONFIG - CS[0, 1] [NAND Data Port: GPIO_B Hw4 ~ Hw11]
ID change ISR : Device
[#### CONFIG_PM ####] tcc_serial_resume Port[0]
[#### CONFIG_PM ####] tcc_serial_resume Port[1]
tcc92fb tccfb_resume:  
wakeup wake lock: event2-992           //注意这个地方
dwc_otg_driver_resume in
dwc_otg_driver_resume out
tcc_adc_resume in
tcc_adc_resume out
usb usb1: root hub lost power or was reset
Vibrator: you want to wake up here !
drivers/char/tcc_bluetooth_sender.c(299) bf10_resume suspend_flag 0
read time 2011/03/06 03:14:55
drivers/gps/gpio.c(162) tcc_gps_resume gps_trigger_flag(0)
cs42l51_resume(): out..
usb 1-1: reset full speed USB device using tcc-ohci and address 2
Mali<1>: mali_pm_resume
tcc_pm_end
Restarting tasks ... done.
suspend: exit suspend, ret = 0 (2011-03-06 03:14:56.057571489 UTC)
tcc92fb tcc92xx_fb_late_resume: tccfb_pan_display  power down state 0
LQ032J3UX_PL_initialize.
LQ032J3UX_GPSB_SETConfig : GCLK 2000000
tccfb_pan_display  power down state 0              //打开屏幕灯
tccfb_pan_display  power down state 0
LCD ctrl:0xc114a ch_2:0x400020c :0x0: 0x0 
~ clock end 
 tcc92xx_fb_early_suspend: fb_lcdc_num:1  clock offtcc92xx_fb_early_suspend end lcdc_num:1 
 <6>PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.00 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
Suspending console(s) (use no_console_suspend to debug)
/***********************************************end of*****************************************/

/************************************************不能正常唤醒**********************************/
Suspending console(s) (use no_console_suspend to debug)
Mali<1>: mali_pm_suspend
cs42l51_suspend(): in...
drivers/gps/gpio.c(151) tcc_gps_suspend gps_trigger_flag(0)
read time 2011/03/06 02:20:58
tcc_rtc_setalarm
set alarm 2011/03/13 02:16:27 
RTC[C2] INT[9007] ALM[EF] IM[F] PEND[0] STR[00]read time 2011/03/06 02:20:58
read time 2011/03/06 02:20:58
drivers/char/tcc_bluetooth_sender.c(287) bf10_suspend suspend_flag 0
Vibrator: you want to sleep here !
tcc_adc_suspend in
tcc_adc_suspend out
dwc_otg_driver_suspend in
dwc_otg_driver_suspend out
tccfb_suspend:  
[#### CONFIG_PM ####] tcc_serial_suspend Port[1]
[#### CONFIG_PM ####] tcc_serial_suspend Port[0]
[MTD TCC] [PORT CONFIG - CS[0, 1] [NAND Data Port: GPIO_B Hw4 ~ Hw11]
ID change ISR : Device
[#### CONFIG_PM ####] tcc_serial_resume Port[0]
[#### CONFIG_PM ####] tcc_serial_resume Port[1]
tcc92fb tccfb_resume:  
wakeup wake lock: mmc_delayed_work       //和上注意到地方对比
dwc_otg_driver_resume in
dwc_otg_driver_resume out
tcc_adc_resume in
tcc_adc_resume out
usb usb1: root hub lost power or was reset
Vibrator: you want to wake up here !
drivers/char/tcc_bluetooth_sender.c(299) bf10_resume suspend_flag 0
read time 2011/03/06 02:21:18
drivers/gps/gpio.c(162) tcc_gps_resume gps_trigger_flag(0)
cs42l51_resume(): out..
usb 1-1: reset full speed USB device using tcc-ohci and address 2
Mali<1>: mali_pm_resume
tcc_pm_end
Restarting tasks ... done.
suspend: exit suspend, ret = 0 (2011-03-06 02:21:19.080519491 UTC)
/****************************************end  of*********************************/


上面打印信息,经过很多次的抓取都是wakeup wake lock不一样的。

从上面可以看出,唤醒键按长按1秒钟左右(正常唤醒),和不正常按键(快速按唤醒键), 不同地方上面有一个唤醒锁
wakeup wake lock: mmc_delayed_work  和wakeup wake lock: event2-992不一样。为什么会这样呢。
找不方向,请指点方向。 --------------------编程问答-------------------- 关注学习中!
up --------------------编程问答-------------------- 跟踪代码发现:
kernel/power/main.c
   static ssize_t state_store(struct kobject *kobj, struct kobj_attribute *attr,const char *buf, size_t n)
函数没有调用(快速按键的时候)。
先看打印信息/
/*****************************************正确的*************************************/
Freezing user space processes ... (elapsed 0.00 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
kernel/power/main.c(440) enter_state()  error=0
PM: Entering mem sleep
kernel/power/main.c(324) suspend_devices_and_enter  in
Suspending console(s) (use no_console_suspend to debug)
Mali<1>: mali_pm_suspend
cs42l51_suspend(): in...
drivers/gps/gpio.c(151) tcc_gps_suspend gps_trigger_flag(0)
read time 2011/06/17 00:19:42
tcc_rtc_setalarm
set alarm 2011/06/17 00:59:59 
RTC[C2] INT[9003] ALM[EF] IM[F] PEND[0] STR[00]read time 2011/06/17 00:19:42
read time 2011/06/17 00:19:42
drivers/char/tcc_bluetooth_sender.c(287) bf10_suspend suspend_flag 0
Vibrator: you want to sleep here !
tcc_adc_suspend in
tcc_adc_suspend out
dwc_otg_driver_suspend in
dwc_otg_driver_suspend out
tccfb_suspend:  
[#### CONFIG_PM ####] tcc_serial_suspend Port[1]
[#### CONFIG_PM ####] tcc_serial_suspend Port[0]
[MTD TCC] [PORT CONFIG - CS[0, 1] [NAND Data Port: GPIO_B Hw4 ~ Hw11]
ID change ISR : Device
drivers/base/power/main.c(552) device_resume  in
[#### CONFIG_PM ####] tcc_serial_resume Port[0]
[#### CONFIG_PM ####] tcc_serial_resume Port[1]
tcc92fb tccfb_resume:  
wakeup wake lock: event2-1045
dwc_otg_driver_resume in
dwc_otg_driver_resume out
tcc_adc_resume in
tcc_adc_resume out
usb usb1: root hub lost power or was reset
Vibrator: you want to wake up here !
drivers/char/tcc_bluetooth_sender.c(299) bf10_resume suspend_flag 0
usb connected
read time 2011/06/17 00:19:49
drivers/gps/gpio.c(162) tcc_gps_resume gps_trigger_flag(0)
cs42l51_resume(): out..
usb 1-1: reset full speed USB device using tcc-ohci and address 2
android_usb gadget: high speed config #1: android
adb_function_set_alt intf: 1 alt: 0
Mali<1>: mali_pm_resume
tcc_pm_end
PM: Finishing wakeup.
Restarting tasks ... <6>adb_release
kernel/power/main.c(521) state_store()  in   //这里已经进入了
kernel/power/main.c(522) state_store()  bur=on,n=2
kernel/power/main.c(551) state_store()  state= 0  valid_state(state)=0
kernel/power/earlysuspend.c(149) request_suspend_state()  in
request_suspend_state() new_state=0
in late_resume_work
request_suspend_state() new_state=0
kernel/power/earlysuspend.c(178) request_suspend_state()  out
kernel/power/main.c(561) state_store()  out  return error=0
adb_open
done.
kernel/power/main.c(457) enter_state()  out
kernel/power/wakelock.c(290) suspend()  ret
suspend: exit suspend, ret = 0 (2011-06-17 00:19:50.228862514 UTC)
current_event_num == 200,entry_event_num==189
kernel/power/wakelock.c(307) suspend()  out
kernel/power/earlysuspend.c(118) late_resume   in
tcc92fb tcc92xx_fb_late_resume: tccfb_pan_display  power down state 0
tccfb_pan_display  power down state 0
LQ032J3UX_PL_initialize.
LQ032J3UX_GPSB_SETConfig : GCLK 2000000
LCD ctrl:0xc114a ch_2:0x400020c :0x0: 0x0 
~ clock end 
 kernel/power/earlysuspend.c(139) late_resume   out
init: untracked pid 1382 exited
kernel/power/main.c(521) state_store()  in
kernel/power/main.c(522) state_store()  bur=mem,n=3
kernel/power/main.c(551) state_store()  state= 3  valid_state(state)=1
kernel/power/earlysuspend.c(149) request_suspend_state()  in
request_suspend_state() new_state=3
in early_suspend_work
request_suspend_state() new_state=3
kernel/power/earlysuspend.c(178) request_suspend_state()  out
kernel/power/main.c(561) state_store()  out  return error=0
tcc92xx_fb_early_suspend: fb_lcdc_num:1  clock offtcc92xx_fb_early_suspend end lcdc_num:1 
 kernel/power/wakelock.c(278) suspend()  in
kernel/power/main.c(472) pm_suspend() in; state=3
kernel/power/main.c(426) enter_state()  in
enter_state() valid_state(state)=1
PM: Syncing filesystems ... done.
PM: Preparing system for mem sleep
Freezing user space processes ... (elapsed 0.00 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
kernel/power/main.c(440) enter_state()  error=0
PM: Entering mem sleep
kernel/power/main.c(324) suspend_devices_and_enter  in
Suspending console(s) (use no_console_suspend to debug)


/*******************************end  of ************************/
/*******************************错误信息*********************************/
Mali<1>: mali_pm_suspend
cs42l51_suspend(): in...
drivers/gps/gpio.c(151) tcc_gps_suspend gps_trigger_flag(0)
read time 2011/06/17 00:19:58
tcc_rtc_setalarm
set alarm 2011/06/17 00:59:58 
RTC[C2] INT[9003] ALM[EF] IM[F] PEND[0] STR[00]read time 2011/06/17 00:19:58
read time 2011/06/17 00:19:58
drivers/char/tcc_bluetooth_sender.c(287) bf10_suspend suspend_flag 0
Vibrator: you want to sleep here !
tcc_adc_suspend in
tcc_adc_suspend out
dwc_otg_driver_suspend in
dwc_otg_driver_suspend out
tccfb_suspend:  
[#### CONFIG_PM ####] tcc_serial_suspend Port[1]
[#### CONFIG_PM ####] tcc_serial_suspend Port[0]
[MTD TCC] [PORT CONFIG - CS[0, 1] [NAND Data Port: GPIO_B Hw4 ~ Hw11]
ID change ISR : Device
drivers/base/power/main.c(552) device_resume  in
[#### CONFIG_PM ####] tcc_serial_resume Port[0]
[#### CONFIG_PM ####] tcc_serial_resume Port[1]
tcc92fb tccfb_resume:  
wakeup wake lock: mmc_delayed_work
dwc_otg_driver_resume in
dwc_otg_driver_resume out
tcc_adc_resume in
tcc_adc_resume out
usb usb1: root hub lost power or was reset
Vibrator: you want to wake up here !
drivers/char/tcc_bluetooth_sender.c(299) bf10_resume suspend_flag 0
usb connected
read time 2011/06/17 00:22:54
drivers/gps/gpio.c(162) tcc_gps_resume gps_trigger_flag(0)
cs42l51_resume(): out..
usb 1-1: reset full speed USB device using tcc-ohci and address 2
android_usb gadget: high speed config #1: android
adb_function_set_alt intf: 1 alt: 0
Mali<1>: mali_pm_resume
tcc_pm_end
PM: Finishing wakeup.
Restarting tasks ... <6>adb_release
adb_open
done.
kernel/power/main.c(457) enter_state()  out
kernel/power/wakelock.c(290) suspend()  ret
suspend: exit suspend, ret = 0 (2011-06-17 00:22:55.167308332 UTC)
current_event_num == 206,entry_event_num==202
kernel/power/wakelock.c(307) suspend()  out
kernel/power/wakelock.c(278) suspend()  in
kernel/power/main.c(472) pm_suspend() in; state=3
kernel/power/main.c(426) enter_state()  in
/****************************end  of********************************************/
我不明白 没有进入tate_store()函数。但是为什么suspend能进入呢。

state_store(),是上层传下来参数(buf).没有传下来,我怎么执行呢。


--------------------编程问答-------------------- 楼主把问题解决了没有,我也遇到了同样问题了,可以说说大概方法吗 ?
--------------------编程问答-------------------- 楼主可以把解决方法说说吗?
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,