diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-4965.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965.c | 47 |
1 files changed, 2 insertions, 45 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c index 57a853d22115..311b37c383c0 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.c +++ b/drivers/net/wireless/iwlwifi/iwl-4965.c | |||
@@ -2074,49 +2074,6 @@ static int iwl4965_txq_agg_enable(struct iwl_priv *priv, int txq_id, | |||
2074 | return 0; | 2074 | return 0; |
2075 | } | 2075 | } |
2076 | 2076 | ||
2077 | static int iwl4965_rx_agg_start(struct iwl_priv *priv, | ||
2078 | const u8 *addr, int tid, u16 ssn) | ||
2079 | { | ||
2080 | unsigned long flags; | ||
2081 | int sta_id; | ||
2082 | |||
2083 | sta_id = iwl_find_station(priv, addr); | ||
2084 | if (sta_id == IWL_INVALID_STATION) | ||
2085 | return -ENXIO; | ||
2086 | |||
2087 | spin_lock_irqsave(&priv->sta_lock, flags); | ||
2088 | priv->stations[sta_id].sta.station_flags_msk = 0; | ||
2089 | priv->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_ADDBA_TID_MSK; | ||
2090 | priv->stations[sta_id].sta.add_immediate_ba_tid = (u8)tid; | ||
2091 | priv->stations[sta_id].sta.add_immediate_ba_ssn = cpu_to_le16(ssn); | ||
2092 | priv->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK; | ||
2093 | spin_unlock_irqrestore(&priv->sta_lock, flags); | ||
2094 | |||
2095 | return iwl_send_add_sta(priv, &priv->stations[sta_id].sta, | ||
2096 | CMD_ASYNC); | ||
2097 | } | ||
2098 | |||
2099 | static int iwl4965_rx_agg_stop(struct iwl_priv *priv, | ||
2100 | const u8 *addr, int tid) | ||
2101 | { | ||
2102 | unsigned long flags; | ||
2103 | int sta_id; | ||
2104 | |||
2105 | sta_id = iwl_find_station(priv, addr); | ||
2106 | if (sta_id == IWL_INVALID_STATION) | ||
2107 | return -ENXIO; | ||
2108 | |||
2109 | spin_lock_irqsave(&priv->sta_lock, flags); | ||
2110 | priv->stations[sta_id].sta.station_flags_msk = 0; | ||
2111 | priv->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_DELBA_TID_MSK; | ||
2112 | priv->stations[sta_id].sta.remove_immediate_ba_tid = (u8)tid; | ||
2113 | priv->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK; | ||
2114 | spin_unlock_irqrestore(&priv->sta_lock, flags); | ||
2115 | |||
2116 | return iwl_send_add_sta(priv, &priv->stations[sta_id].sta, | ||
2117 | CMD_ASYNC); | ||
2118 | } | ||
2119 | |||
2120 | int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw, | 2077 | int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw, |
2121 | enum ieee80211_ampdu_mlme_action action, | 2078 | enum ieee80211_ampdu_mlme_action action, |
2122 | const u8 *addr, u16 tid, u16 *ssn) | 2079 | const u8 *addr, u16 tid, u16 *ssn) |
@@ -2130,10 +2087,10 @@ int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw, | |||
2130 | switch (action) { | 2087 | switch (action) { |
2131 | case IEEE80211_AMPDU_RX_START: | 2088 | case IEEE80211_AMPDU_RX_START: |
2132 | IWL_DEBUG_HT("start Rx\n"); | 2089 | IWL_DEBUG_HT("start Rx\n"); |
2133 | return iwl4965_rx_agg_start(priv, addr, tid, *ssn); | 2090 | return iwl_rx_agg_start(priv, addr, tid, *ssn); |
2134 | case IEEE80211_AMPDU_RX_STOP: | 2091 | case IEEE80211_AMPDU_RX_STOP: |
2135 | IWL_DEBUG_HT("stop Rx\n"); | 2092 | IWL_DEBUG_HT("stop Rx\n"); |
2136 | return iwl4965_rx_agg_stop(priv, addr, tid); | 2093 | return iwl_rx_agg_stop(priv, addr, tid); |
2137 | case IEEE80211_AMPDU_TX_START: | 2094 | case IEEE80211_AMPDU_TX_START: |
2138 | IWL_DEBUG_HT("start Tx\n"); | 2095 | IWL_DEBUG_HT("start Tx\n"); |
2139 | return iwl_tx_agg_start(priv, addr, tid, ssn); | 2096 | return iwl_tx_agg_start(priv, addr, tid, ssn); |