remarkable-linux/net/mac80211
Johannes Berg 2eb278e083 mac80211: unify SW/offload remain-on-channel
Redesign all the off-channel code, getting rid of
the generic off-channel work concept, replacing
it with a simple remain-on-channel list.

This fixes a number of small issues with the ROC
implementation:
 * offloaded remain-on-channel couldn't be queued,
   now we can queue it as well, if needed
 * in iwlwifi (the only user) offloaded ROC is
   mutually exclusive with scanning, use the new
   queue to handle that case -- I expect that it
   will later depend on a HW flag

The bigger issue though is that there's a bad bug
in the current implementation: if we get a mgmt
TX request while HW roc is active, and this new
request has a wait time, we actually schedule a
software ROC instead since we can't guarantee the
existing offloaded ROC will still be that long.
To fix this, the queuing mechanism was needed.

The queuing mechanism for offloaded ROC isn't yet
optimal, ideally we should add API to have the HW
extend the ROC if needed. We could add that later
but for now use a software implementation.

Overall, this unifies the behaviour between the
offloaded and software-implemented case as much
as possible.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-06-06 15:31:18 -04:00
..
aes_ccm.c
aes_ccm.h
aes_cmac.c
aes_cmac.h
agg-rx.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2012-06-06 14:40:06 -04:00
agg-tx.c net: mac80211: Add and use ht_vdbg debugging macro 2012-06-05 15:32:10 -04:00
cfg.c mac80211: unify SW/offload remain-on-channel 2012-06-06 15:31:18 -04:00
cfg.h
chan.c mac80211: allow channel change while mesh is down 2012-06-05 15:21:47 -04:00
debugfs.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
debugfs.h simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
debugfs_key.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
debugfs_key.h
debugfs_netdev.c mac80211: Add missing mesh parameter dot11MeshForwarding for debugfs 2012-06-06 15:20:21 -04:00
debugfs_netdev.h
debugfs_sta.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2012-04-12 13:49:28 -04:00
debugfs_sta.h
driver-ops.h mac80211: Framework to get wifi-driver stats via ethtool. 2012-05-08 21:53:51 -04:00
driver-trace.c
driver-trace.h mac80211: Framework to get wifi-driver stats via ethtool. 2012-05-08 21:53:51 -04:00
event.c
ht.c net: Convert net_ratelimit uses to net_<level>_ratelimited 2012-05-15 13:45:03 -04:00
ibss.c cfg80211: simplify cfg80211_can_beacon_sec_chan API 2012-06-05 15:32:16 -04:00
ieee80211_i.h mac80211: unify SW/offload remain-on-channel 2012-06-06 15:31:18 -04:00
iface.c mac80211: unify SW/offload remain-on-channel 2012-06-06 15:31:18 -04:00
Kconfig mac80211: Implement mesh synchronization framework 2012-04-10 15:20:31 -04:00
key.c mac80211: clean up asm/unaligned.h inclusion 2012-02-27 14:06:32 -05:00
key.h
led.c
led.h
main.c mac80211: unify SW/offload remain-on-channel 2012-06-06 15:31:18 -04:00
Makefile mac80211: unify SW/offload remain-on-channel 2012-06-06 15:31:18 -04:00
mesh.c net: mac80211: Convert printk(KERN_DEBUG to pr_debug 2012-06-05 15:27:16 -04:00
mesh.h mac80211: Adds clean sdata helper 2012-04-24 14:56:10 -04:00
mesh_hwmp.c net: mac80211: Convert printk(KERN_DEBUG to pr_debug 2012-06-05 15:27:16 -04:00
mesh_pathtbl.c net: mac80211: Convert printk(KERN_DEBUG to pr_debug 2012-06-05 15:27:16 -04:00
mesh_plink.c net: mac80211: Convert printk(KERN_DEBUG to pr_debug 2012-06-05 15:27:16 -04:00
mesh_sync.c net: mac80211: Convert printk(KERN_DEBUG to pr_debug 2012-06-05 15:27:16 -04:00
michael.c
michael.h
mlme.c mac80211: do remain-on-channel while idle 2012-06-06 15:20:33 -04:00
offchannel.c mac80211: unify SW/offload remain-on-channel 2012-06-06 15:31:18 -04:00
pm.c mac80211: Clear wowlan flag when drv_suspend returns failure 2012-06-06 15:20:22 -04:00
rate.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
rate.h mac80211: notify driver of rate control updates 2012-04-10 14:54:08 -04:00
rc80211_minstrel.c mac80211: remove hw.conf.channel usage where possible 2012-04-13 14:32:50 -04:00
rc80211_minstrel.h
rc80211_minstrel_debugfs.c
rc80211_minstrel_ht.c mac80211: remove hw.conf.channel usage where possible 2012-04-13 14:32:50 -04:00
rc80211_minstrel_ht.h
rc80211_minstrel_ht_debugfs.c
rc80211_pid.h
rc80211_pid_algo.c net: fix assignment of 0/1 to bool variables. 2011-12-19 22:27:29 -05:00
rc80211_pid_debugfs.c
rx.c net: mac80211: Convert printk(KERN_DEBUG to pr_debug 2012-06-05 15:27:16 -04:00
scan.c mac80211: unify SW/offload remain-on-channel 2012-06-06 15:31:18 -04:00
spectmgmt.c
sta_info.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2012-06-06 14:40:06 -04:00
sta_info.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next 2012-05-14 18:00:48 -04:00
status.c mac80211: unify SW/offload remain-on-channel 2012-06-06 15:31:18 -04:00
tkip.c net: mac80211: Convert printk(KERN_DEBUG to pr_debug 2012-06-05 15:27:16 -04:00
tkip.h
tx.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2012-06-06 14:40:06 -04:00
util.c mac80211: add stations after AP start on reconfig 2012-06-06 15:20:23 -04:00
wep.c mac80211: fix network header location when adding encryption headers 2012-05-16 12:47:43 -04:00
wep.h mac80211: move RX WEP weak IV counting 2012-03-13 14:54:16 -04:00
wme.c mac80211: use IEEE80211_NUM_ACS 2012-04-10 14:56:10 -04:00
wme.h mac80211: make ieee80211_downgrade_queue static 2012-04-10 14:54:06 -04:00
wpa.c mac80211: fix network header location when adding encryption headers 2012-05-16 12:47:43 -04:00
wpa.h mac80211: fix tx->skb NULL pointer dereference 2012-01-16 15:01:16 -05:00