#12704 NORM Not Tri: [CL4]The power LED will keep turn on about 30 secs in S3 mode.Fail rate:1/6 times

Zarro Boogs per Child bugtracker at laptop.org
Mon Jun 17 17:47:16 EDT 2013

#12704: [CL4]The power LED will keep turn on about 30 secs in S3 mode.Fail rate:1/6
           Reporter:  james         |       Owner:  pgf          
               Type:  defect        |      Status:  new          
           Priority:  normal        |   Milestone:  Not Triaged  
          Component:  not assigned  |     Version:  not specified
         Resolution:                |    Keywords:               
        Next_action:  never set     |    Verified:  0            
Deployment_affected:                |   Blockedby:               
           Blocking:                |  

Comment(by pgf):

 thanks for the report.

 i don't yet know for sure that i've found the specific cause, but i've
 certainly found a bug.

 OLPC drivers whose wakeup events originate from the EC (OLS, battery, AC)
 choose whether to leave their wakeups enabled during suspend, by invoking
 olpc_ec_disable_wakeup().  the EC driver then sends the mask produced as a
 result of all these calls to the EC.  this depends on the EC driver's
 suspend routine running after all the other drivers have had a chance to
 reset their bits.  however, that's not currently the case on XO-4.

 this trace shows the OLS, EC, and battery suspend routines running in an
 inappropriate order:
 [  156.799119] PM: Syncing filesystems ... done.
 [  156.805995] Freezing user space processes ... (elapsed 0.02 seconds)
 [  156.830702] Freezing remaining freezable tasks ... (elapsed 0.01
 seconds) done.
 [  156.850688] Suspending console(s) (use no_console_suspend to debug)
 [  156.868464] MARK:301 olpc_ols_suspend()
 [  156.868507] MARK:303 olpc_ols_suspend()
 [  156.868507] MARK:213 olpc_ec_disable_wakeup() 'olpc_ec->wakeup_mask' is
 [  156.868512] MARK:213 olpc_ec_disable_wakeup() 'olpc_ec->wakeup_mask' is
 [  156.930822] mmp3_usb_phy_deinit_internal: Deinit usb phy!!!
 [  156.930822] MARK:1170 olpc_ec_1_75_suspend() 'ec->wakeup_mask' is
 [  156.970661] mmc2: dropping power over suspend
 [  156.970744] mmc1: dropping power over suspend
 [  156.976315] mwifiex_sdio mmc0:0001:1: PREP_CMD: card is removed
 [  156.978791] mmc0: card 0001 removed
 [  156.978891] mmc0: dropping power over suspend
 [  156.979955] [galcore] enter gpu_suspend
 [  156.979977] [galcore] exit gpu_suspend, return 0
 [  156.979988] MARK:776 olpc_bat_suspend()
 [  156.980003] MARK:786 olpc_bat_suspend()
 [  156.980006] MARK:213 olpc_ec_disable_wakeup() 'olpc_ec->wakeup_mask' is
 [  156.980074] PM: suspend of devices complete after 120.248 msecs
 [  156.980296] PM: late suspend of devices complete after 0.001 msecs
 [  156.980574] PM: noirq suspend of devices complete after 0.268 msecs
 [  156.980673] mmp3_pm_enter_d2
 [  156.980694] before suspend


 the result is that the battery and AC wakeups events are always enabled in
 the EC.

 i see nothing in the 1.75 code that should affect module ordering, though
 i thought we had discussed this issue at that time.

 further, since olpc-battery.c is built-in, i'm not sure we'll be able to
 get its suspend routine to run before that of olpc-ec-1.75.c, which is

Ticket URL: <http://dev.laptop.org/ticket/12704#comment:2>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system

More information about the Bugs mailing list