Deep Sleep Question
bzhao at marvell.com
Mon Aug 22 14:49:04 EDT 2011
> 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.
> 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.
More information about the libertas-dev