#12657 NORM 13.2.0: Fix btmrvl/mwifiex suspend interactions
Zarro Boogs per Child
bugtracker at laptop.org
Wed May 22 08:17:36 EDT 2013
#12657: Fix btmrvl/mwifiex suspend interactions
------------------------------+---------------------------------------------
Reporter: dsd | Owner: pgf
Type: defect | Status: new
Priority: normal | Milestone: 13.2.0
Component: kernel | Version: not specified
Resolution: | Keywords:
Next_action: code | Verified: 0
Deployment_affected: | Blockedby:
Blocking: |
------------------------------+---------------------------------------------
Changes (by pgf):
* cc: dsd (added)
Comment:
{{{
<dsd> pgf: just a guess (without looking at the code), for that mwifiex
bug try dropping the line that sets is_suspended to true
<pgf> okay. i'm officially hanging it up. dsd just fixed the bug (which
i've been diagnosing on and off for several days) by asking me to delete a
line, without even looking at the code.
<dsd> hah, sorry
<pgf> oh, believe me -- it's okay! :-)
...
<dsd> that flag also got in my way before, which is why i figured that was
worth a try
<pgf> do you think it's needed for any of the other host interfaces?
<dsd> just the USB one
<pgf> okay, so it shouldn't be eliminated -- just not maintained in sdio.
<dsd> it would be worth getting an understanding of whats going on though,
if you dont have that already. it suggests that we're trying to send a
command after that flag is set
<pgf> yeah -- that's where i was when i stopped for the day.
<pgf> "that shouldn't be happening"
<dsd> ok
<pgf> i'll try and understand it tom'w.
}}}
i believe the problem is that while the setting of host sleep mode is done
synchronously, unsetting it is done async. when mmc realizes that no card
function needs a powered suspend, it runs all of the card function resume
routines (which is when mwifiex_sdio_resume() sends the async command to
cancel host sleep), and then commences removing the card. during the
remove sequence, the driver tries to talk to the card, and there's a race
condition against the cancellation of host sleep.
dsd's proposed change, above, fixes the problem. so does changing the
cancellation of host sleep to be a synchronous command.
daniel -- opinions? we could apply either change, or both, i guess.
--
Ticket URL: <http://dev.laptop.org/ticket/12657#comment:7>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system
More information about the Bugs
mailing list