Deep Sleep Question

Bing Zhao bzhao at marvell.com
Mon Aug 22 14:49:04 EDT 2011


Hi Samuel,

> Subject: Deep Sleep Question
> 
> I am currently working on a project that uses a Marvell 8686 chip and Libertas driver to control WiFi
> (kernel 2.6.39).  My hardware is power sensitive, and I need to turn deep sleep on.  The Libertas
> README file states that I can use "iwconfig wlan0 power period 0" to enable deep sleep mode.  In
> order for this command to work properly, I had to install a more recent version of the Wireless Tools
> (v30 pre9).  However, I am still getting an error:
> $ iwconfig wlan2 power period 0
> Error for wireless request “Set Power Management” (8B2C) :
>       SET failed on device wlan2 ; Operation not supported.

Wext has been removed in recent kernel. So these commands do not work any more.
I'll send a patch to remove these commands from libertas README.

> 
> I went through the mailing list archives and saw that you guys were saying the iwconfig power
> commands would not work:
> 
> "Bing Zhao
> 
> Tue Jul 19 22:33:23 EDT 2011
> 
> Hi Daniel,
> 
> 
> > > To enable deep sleep mode:
> > > iwconfig wlan0 power period 0
> > >
> > > To enable auto deep sleep mode with idle time period set to 5 seconds:
> > > iwconfig wlan0 power period 5
> 
> > >
> > > To disable deep sleep/auto deep sleep mode:
> > > iwconfig wlan0 power period -1
> >
> > Paul pointed out that indeed, in old kernels, this functionality was
> 
> > hooked up to the power wireless extension.
> >
> > In recent kernels, this is not the case - its not hooked up to
> > anything. The commands you write above will fail.
> 
> 
> Yeah. I didn't know that the entire wext has been removed from libertas.
> 
> Anyway, for users who need this feature we can add a module parameter to enable it with the patch
> below. Please let me know what you think.
> 
> 
> Thanks,
> Bing"
> 
> After discussing the situation, it sounded like you were looking into using the cfg80211 API for
> power options.

"set_power_mgmt" API is currently supported but that is for IEEE Power Save configuration only.
For "auto deep sleep" support I can see two options here:
1) enhance the existing "set_power_mgmt" API so that it can support both IEEE Power Save and Auto Deep Sleep.
2) add a new API, e.g., set_power_auto_deep_sleep

> 
> What is the current method I can use to turn deep sleep on and off?

I had posted a patch that added a module parameter to enable/disable auto deep sleep.
For the time being you can apply that patch for your tests.

Thanks,
Bing

> 
> Thanks,
> Samuel



More information about the libertas-dev mailing list