Search Linux Wireless

[RFC PATCH v4 0/5] mac80211 dynamic power save

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Here is v4 of my dynamic powersave patches. I have tested them only
with stlc45xx on Nokia N810. I'm also working with iwl3945 and iwlagn
patches based on these patches, but I haven't finished them yet.

These are RFC patches, not yet to be applied.

Patch 3 contains a new flag IEEE80211_HW_NO_DYNAMIC_PS. So all drivers
which firmware doesn't support dynamic power save should use this flag
to enable the feature in mac80211. This is a separate patch just for
easier review. If it's ok, I'll fold it to patch 2.

Patch 4 moves the dynamic_ps_timeout to ieee80211_conf struct. That
way the drivers which have dynamic power save support in firmware can
use the same timeout provided by user space. If this ok I'll fold this
to patch 2.

Patch 5 contains internal interface mac80211 to enable and disable
queues. The original idea and design is from Johannes Berg, I just did
the implementation based on those. All the bugs are mine, of course.

changes in v4:
o add check for station interface to siwpower()
o call hw_config() also for dynamic timeout changes
o add dynamic_ prefix to workqueues
o test for IEEE80211_HW_NO_DYNAMIC_PS in siwpower()
o wrote documentation for IEEE80211_HW_NO_DYNAMIC_PS
o wrote documentation for conf->dynamic_ps_timeout

changes in v3:
o add a hw flag to notify that driver doesn't support dynamic power save and
  which will enable mac80211 implementation
o delete dynamic_ps_timer and cancel ps_enable_work during
  association, hopefully it's race free now
o provide timeout value to the drivers, for example iwlwifi should use
  it (example patch under works)
o fix a bad bug in testing IEEE80211_STA_ASSOCIATED flag with && operator

TODO:
o test with iwlwifi (only in-tree driver using IEEE80211_CONF_PS)

Power save related features which I'll implement later:
o disable power save when software scanning
o beacon period (wakeup period) to the drivers, can be set from user
  space but otherwise is bss's DTIM value

---

Kalle Valo (5):
      mac80211: track master queue status
      mac80211: move dynamic_ps_timeout to hw.conf
      mac80211: add IEEE80211_HW_NO_DYNAMIC_PS flag
      mac80211: implement dynamic power save
      mac80211: enable IEEE80211_CONF_PS only when associated


 include/net/mac80211.h     |   10 +++++++
 net/mac80211/ieee80211_i.h |   22 +++++++++++++++-
 net/mac80211/main.c        |    9 +++++++
 net/mac80211/mlme.c        |   60 +++++++++++++++++++++++++++++++++++++++++++-
 net/mac80211/tx.c          |   13 ++++++++++
 net/mac80211/util.c        |   60 ++++++++++++++++++++++++++++++++++++++++----
 net/mac80211/wext.c        |   46 ++++++++++++++++++++++++++++------
 7 files changed, 203 insertions(+), 17 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux