aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-4965.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-4965.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.c47
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
2077static 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
2099static 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
2120int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw, 2077int 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);