diff options
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965.c | 33 | ||||
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-dev.h | 4 | ||||
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl4965-base.c | 35 |
3 files changed, 34 insertions, 38 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c index ea23c7629575..3cc6f00d96cd 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.c +++ b/drivers/net/wireless/iwlwifi/iwl-4965.c | |||
| @@ -2067,39 +2067,6 @@ static int iwl4965_txq_agg_enable(struct iwl_priv *priv, int txq_id, | |||
| 2067 | return 0; | 2067 | return 0; |
| 2068 | } | 2068 | } |
| 2069 | 2069 | ||
| 2070 | int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw, | ||
| 2071 | enum ieee80211_ampdu_mlme_action action, | ||
| 2072 | const u8 *addr, u16 tid, u16 *ssn) | ||
| 2073 | { | ||
| 2074 | struct iwl_priv *priv = hw->priv; | ||
| 2075 | DECLARE_MAC_BUF(mac); | ||
| 2076 | |||
| 2077 | IWL_DEBUG_HT("A-MPDU action on addr %s tid %d\n", | ||
| 2078 | print_mac(mac, addr), tid); | ||
| 2079 | |||
| 2080 | if (!(priv->cfg->sku & IWL_SKU_N)) | ||
| 2081 | return -EACCES; | ||
| 2082 | |||
| 2083 | switch (action) { | ||
| 2084 | case IEEE80211_AMPDU_RX_START: | ||
| 2085 | IWL_DEBUG_HT("start Rx\n"); | ||
| 2086 | return iwl_rx_agg_start(priv, addr, tid, *ssn); | ||
| 2087 | case IEEE80211_AMPDU_RX_STOP: | ||
| 2088 | IWL_DEBUG_HT("stop Rx\n"); | ||
| 2089 | return iwl_rx_agg_stop(priv, addr, tid); | ||
| 2090 | case IEEE80211_AMPDU_TX_START: | ||
| 2091 | IWL_DEBUG_HT("start Tx\n"); | ||
| 2092 | return iwl_tx_agg_start(priv, addr, tid, ssn); | ||
| 2093 | case IEEE80211_AMPDU_TX_STOP: | ||
| 2094 | IWL_DEBUG_HT("stop Tx\n"); | ||
| 2095 | return iwl_tx_agg_stop(priv, addr, tid); | ||
| 2096 | default: | ||
| 2097 | IWL_DEBUG_HT("unknown\n"); | ||
| 2098 | return -EINVAL; | ||
| 2099 | break; | ||
| 2100 | } | ||
| 2101 | return 0; | ||
| 2102 | } | ||
| 2103 | 2070 | ||
| 2104 | static u16 iwl4965_get_hcmd_size(u8 cmd_id, u16 len) | 2071 | static u16 iwl4965_get_hcmd_size(u8 cmd_id, u16 len) |
| 2105 | { | 2072 | { |
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h index 010ed69e0e50..d2d4beab82a0 100644 --- a/drivers/net/wireless/iwlwifi/iwl-dev.h +++ b/drivers/net/wireless/iwlwifi/iwl-dev.h | |||
| @@ -643,10 +643,6 @@ struct iwl_priv; | |||
| 643 | * Forward declare iwl-4965.c functions for iwl-base.c | 643 | * Forward declare iwl-4965.c functions for iwl-base.c |
| 644 | */ | 644 | */ |
| 645 | extern void iwl4965_rf_kill_ct_config(struct iwl_priv *priv); | 645 | extern void iwl4965_rf_kill_ct_config(struct iwl_priv *priv); |
| 646 | |||
| 647 | int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw, | ||
| 648 | enum ieee80211_ampdu_mlme_action action, | ||
| 649 | const u8 *addr, u16 tid, u16 *ssn); | ||
| 650 | int iwl4965_check_empty_hw_queue(struct iwl_priv *priv, int sta_id, | 646 | int iwl4965_check_empty_hw_queue(struct iwl_priv *priv, int sta_id, |
| 651 | u8 tid, int txq_id); | 647 | u8 tid, int txq_id); |
| 652 | 648 | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c index 2001b09738ff..a34280f65c1a 100644 --- a/drivers/net/wireless/iwlwifi/iwl4965-base.c +++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c | |||
| @@ -65,7 +65,7 @@ | |||
| 65 | * NOTE: DRV_NAME is defined in iwlwifi.h for use by iwl-debug.h and printk | 65 | * NOTE: DRV_NAME is defined in iwlwifi.h for use by iwl-debug.h and printk |
| 66 | */ | 66 | */ |
| 67 | 67 | ||
| 68 | #define DRV_DESCRIPTION "Intel(R) Wireless WiFi Link 4965AGN driver for Linux" | 68 | #define DRV_DESCRIPTION "Intel(R) Wireless WiFi Link AGN driver for Linux" |
| 69 | 69 | ||
| 70 | #ifdef CONFIG_IWLWIFI_DEBUG | 70 | #ifdef CONFIG_IWLWIFI_DEBUG |
| 71 | #define VD "d" | 71 | #define VD "d" |
| @@ -3345,6 +3345,39 @@ static int iwl4965_mac_conf_tx(struct ieee80211_hw *hw, u16 queue, | |||
| 3345 | return 0; | 3345 | return 0; |
| 3346 | } | 3346 | } |
| 3347 | 3347 | ||
| 3348 | static int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw, | ||
| 3349 | enum ieee80211_ampdu_mlme_action action, | ||
| 3350 | const u8 *addr, u16 tid, u16 *ssn) | ||
| 3351 | { | ||
| 3352 | struct iwl_priv *priv = hw->priv; | ||
| 3353 | DECLARE_MAC_BUF(mac); | ||
| 3354 | |||
| 3355 | IWL_DEBUG_HT("A-MPDU action on addr %s tid %d\n", | ||
| 3356 | print_mac(mac, addr), tid); | ||
| 3357 | |||
| 3358 | if (!(priv->cfg->sku & IWL_SKU_N)) | ||
| 3359 | return -EACCES; | ||
| 3360 | |||
| 3361 | switch (action) { | ||
| 3362 | case IEEE80211_AMPDU_RX_START: | ||
| 3363 | IWL_DEBUG_HT("start Rx\n"); | ||
| 3364 | return iwl_rx_agg_start(priv, addr, tid, *ssn); | ||
| 3365 | case IEEE80211_AMPDU_RX_STOP: | ||
| 3366 | IWL_DEBUG_HT("stop Rx\n"); | ||
| 3367 | return iwl_rx_agg_stop(priv, addr, tid); | ||
| 3368 | case IEEE80211_AMPDU_TX_START: | ||
| 3369 | IWL_DEBUG_HT("start Tx\n"); | ||
| 3370 | return iwl_tx_agg_start(priv, addr, tid, ssn); | ||
| 3371 | case IEEE80211_AMPDU_TX_STOP: | ||
| 3372 | IWL_DEBUG_HT("stop Tx\n"); | ||
| 3373 | return iwl_tx_agg_stop(priv, addr, tid); | ||
| 3374 | default: | ||
| 3375 | IWL_DEBUG_HT("unknown\n"); | ||
| 3376 | return -EINVAL; | ||
| 3377 | break; | ||
| 3378 | } | ||
| 3379 | return 0; | ||
| 3380 | } | ||
| 3348 | static int iwl4965_mac_get_tx_stats(struct ieee80211_hw *hw, | 3381 | static int iwl4965_mac_get_tx_stats(struct ieee80211_hw *hw, |
| 3349 | struct ieee80211_tx_queue_stats *stats) | 3382 | struct ieee80211_tx_queue_stats *stats) |
| 3350 | { | 3383 | { |
