aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mwl8k.c
diff options
context:
space:
mode:
authorLennert Buytenhek <buytenh@wantstofly.org>2010-01-04 15:58:12 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-01-05 17:13:34 -0500
commita2292d83b5dcb7f378956a124854d2b17fa53aa3 (patch)
tree26f935a10f9aa789829dc0e69cf9b5f7c3958aeb /drivers/net/wireless/mwl8k.c
parent13935e2cf39b124c9a2ff0349b294e0b1e2e3aef (diff)
mwl8k: trivial rx-only ampdu implementation
AMPDU receive doesn't need any special handling, so let's enable this before tackling the transmit side. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/mwl8k.c')
-rw-r--r--drivers/net/wireless/mwl8k.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c
index e0301b6310f..57ced0db910 100644
--- a/drivers/net/wireless/mwl8k.c
+++ b/drivers/net/wireless/mwl8k.c
@@ -3309,6 +3309,22 @@ static int mwl8k_get_stats(struct ieee80211_hw *hw,
3309 return mwl8k_cmd_get_stat(hw, stats); 3309 return mwl8k_cmd_get_stat(hw, stats);
3310} 3310}
3311 3311
3312static int
3313mwl8k_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
3314 enum ieee80211_ampdu_mlme_action action,
3315 struct ieee80211_sta *sta, u16 tid, u16 *ssn)
3316{
3317 switch (action) {
3318 case IEEE80211_AMPDU_RX_START:
3319 case IEEE80211_AMPDU_RX_STOP:
3320 if (!(hw->flags & IEEE80211_HW_AMPDU_AGGREGATION))
3321 return -ENOTSUPP;
3322 return 0;
3323 default:
3324 return -ENOTSUPP;
3325 }
3326}
3327
3312static const struct ieee80211_ops mwl8k_ops = { 3328static const struct ieee80211_ops mwl8k_ops = {
3313 .tx = mwl8k_tx, 3329 .tx = mwl8k_tx,
3314 .start = mwl8k_start, 3330 .start = mwl8k_start,
@@ -3324,6 +3340,7 @@ static const struct ieee80211_ops mwl8k_ops = {
3324 .conf_tx = mwl8k_conf_tx, 3340 .conf_tx = mwl8k_conf_tx,
3325 .get_tx_stats = mwl8k_get_tx_stats, 3341 .get_tx_stats = mwl8k_get_tx_stats,
3326 .get_stats = mwl8k_get_stats, 3342 .get_stats = mwl8k_get_stats,
3343 .ampdu_action = mwl8k_ampdu_action,
3327}; 3344};
3328 3345
3329static void mwl8k_tx_reclaim_handler(unsigned long data) 3346static void mwl8k_tx_reclaim_handler(unsigned long data)