#12568 NORM Not Tri: mwifiex/8787 hang on suspend, recognized by EC 0.3.12 as needing rescue, but rescue fails to work
Zarro Boogs per Child
bugtracker at laptop.org
Wed Feb 20 12:17:55 EST 2013
#12568: mwifiex/8787 hang on suspend, recognized by EC 0.3.12 as needing rescue,
but rescue fails to work
--------------------------+-------------------------------------------------
Reporter: shep | Owner: pgf
Type: defect | Status: new
Priority: normal | Milestone: Not Triaged
Component: not assigned | Version: Development source as of this date
Keywords: | Next_action: never set
Verified: 0 | Deployment_affected:
Blockedby: | Blocking:
--------------------------+-------------------------------------------------
Testing with kernel a92e022840e7e044fc9a45003f0772314a308191 and firmware
Q7B15 I was seeing occasional hangs while suspending (power LED never goes
off) which seemed to be similar to the #12541 problem. EC 0.3.12 has a
hack to rescue the SoC from this problem by recognizing it has happened
and whacking it with an interrupt if appropriate. While this rescue from
the EC included in 0.3.12 apparently works for the keyboard events
described in #12541, I tried testing mwifiex/8787 wake-on-lan with EC
0.3.12 and found that the hang still happens, I've seen it several times.
The last things to appear on the EC console when it happens are:
{{{
233392966:ec_irq: rescuing
233393967:ec_irq: asserting
}}}
but the system just sits there with the power LED remaining on.
I wonder if there's some reason the asserted wakeup signal on the SDIO
interface from the wireless card is blocking the interrupt from the EC.
Is there some priority relationship between the two interrupt sources that
can be tweaked?
It would also be interesting to know if this same problem can be
demonstrated with libertas/8686.
Note, this is with a gap value of 0xff in the mwifiex/8787 host sleep
parameters sent to the 8787 firmware. This problem seemed to happen
less with a gap value of 0xfa (but that adds 0.25 second delay in the
wakeup happening), presumably because it gives the system a 0.25 head
start in the race to get fully asleep before the wakeup condition is
asserted.
We could perhaps work around the race condition with a non-zero and non-
0xff gap value, but then we'd have to decide how to tune this and would
suffer this needless delay on every wakeup from wake-on-lan. (Too bad the
firmware doesn't have a parameter that only starts a timer running from
when the host sleep parameters are sent to the firmware, and only delays
the wakeup signal if it should come in that initial period while the host
is going to sleep.)
Best would be if we could make the EC rescue from #12541 that is in EC
0.3.12 also work for the mwifiex/8787 wakeup condition too.
--
Ticket URL: <http://dev.laptop.org/ticket/12568>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system
More information about the Bugs
mailing list