diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-03-23 12:28:42 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-03-27 20:13:23 -0400 |
commit | e4e72fb4de93e3d4047a4ee3f08778422e17ed0d (patch) | |
tree | dd133a749e6fa6960c9aa708041d996110f6440e /net/mac80211/main.c | |
parent | cd8ffc800ce18e558335c4946b2217864fc16045 (diff) |
mac80211/iwlwifi: move virtual A-MDPU queue bookkeeping to iwlwifi
This patch removes all the virtual A-MPDU-queue bookkeeping from
mac80211. Curiously, iwlwifi already does its own bookkeeping, so
it doesn't require much changes except where it needs to handle
starting and stopping the queues in mac80211.
To handle the queue stop/wake properly, we rewrite the software
queue number for aggregation frames and internally to iwlwifi keep
track of the queues that map into the same AC queue, and only talk
to mac80211 about the AC queue. The implementation requires calling
two new functions, iwl_stop_queue and iwl_wake_queue instead of the
mac80211 counterparts.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Cc: Reinette Chattre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/main.c')
-rw-r--r-- | net/mac80211/main.c | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c index 756284e0bbd3..a6f1d8a869bc 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c | |||
@@ -774,11 +774,6 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len, | |||
774 | setup_timer(&local->dynamic_ps_timer, | 774 | setup_timer(&local->dynamic_ps_timer, |
775 | ieee80211_dynamic_ps_timer, (unsigned long) local); | 775 | ieee80211_dynamic_ps_timer, (unsigned long) local); |
776 | 776 | ||
777 | for (i = 0; i < IEEE80211_MAX_AMPDU_QUEUES; i++) | ||
778 | local->ampdu_ac_queue[i] = -1; | ||
779 | /* using an s8 won't work with more than that */ | ||
780 | BUILD_BUG_ON(IEEE80211_MAX_AMPDU_QUEUES > 127); | ||
781 | |||
782 | sta_info_init(local); | 777 | sta_info_init(local); |
783 | 778 | ||
784 | for (i = 0; i < IEEE80211_MAX_QUEUES; i++) | 779 | for (i = 0; i < IEEE80211_MAX_QUEUES; i++) |
@@ -874,10 +869,6 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) | |||
874 | */ | 869 | */ |
875 | if (hw->queues > IEEE80211_MAX_QUEUES) | 870 | if (hw->queues > IEEE80211_MAX_QUEUES) |
876 | hw->queues = IEEE80211_MAX_QUEUES; | 871 | hw->queues = IEEE80211_MAX_QUEUES; |
877 | if (hw->ampdu_queues > IEEE80211_MAX_AMPDU_QUEUES) | ||
878 | hw->ampdu_queues = IEEE80211_MAX_AMPDU_QUEUES; | ||
879 | if (hw->queues < 4) | ||
880 | hw->ampdu_queues = 0; | ||
881 | 872 | ||
882 | mdev = alloc_netdev_mq(sizeof(struct ieee80211_master_priv), | 873 | mdev = alloc_netdev_mq(sizeof(struct ieee80211_master_priv), |
883 | "wmaster%d", ieee80211_master_setup, | 874 | "wmaster%d", ieee80211_master_setup, |