|
@@ -2074,49 +2074,6 @@ static int iwl4965_txq_agg_enable(struct iwl_priv *priv, int txq_id,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int iwl4965_rx_agg_start(struct iwl_priv *priv,
|
|
|
- const u8 *addr, int tid, u16 ssn)
|
|
|
-{
|
|
|
- unsigned long flags;
|
|
|
- int sta_id;
|
|
|
-
|
|
|
- sta_id = iwl_find_station(priv, addr);
|
|
|
- if (sta_id == IWL_INVALID_STATION)
|
|
|
- return -ENXIO;
|
|
|
-
|
|
|
- spin_lock_irqsave(&priv->sta_lock, flags);
|
|
|
- priv->stations[sta_id].sta.station_flags_msk = 0;
|
|
|
- priv->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_ADDBA_TID_MSK;
|
|
|
- priv->stations[sta_id].sta.add_immediate_ba_tid = (u8)tid;
|
|
|
- priv->stations[sta_id].sta.add_immediate_ba_ssn = cpu_to_le16(ssn);
|
|
|
- priv->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK;
|
|
|
- spin_unlock_irqrestore(&priv->sta_lock, flags);
|
|
|
-
|
|
|
- return iwl_send_add_sta(priv, &priv->stations[sta_id].sta,
|
|
|
- CMD_ASYNC);
|
|
|
-}
|
|
|
-
|
|
|
-static int iwl4965_rx_agg_stop(struct iwl_priv *priv,
|
|
|
- const u8 *addr, int tid)
|
|
|
-{
|
|
|
- unsigned long flags;
|
|
|
- int sta_id;
|
|
|
-
|
|
|
- sta_id = iwl_find_station(priv, addr);
|
|
|
- if (sta_id == IWL_INVALID_STATION)
|
|
|
- return -ENXIO;
|
|
|
-
|
|
|
- spin_lock_irqsave(&priv->sta_lock, flags);
|
|
|
- priv->stations[sta_id].sta.station_flags_msk = 0;
|
|
|
- priv->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_DELBA_TID_MSK;
|
|
|
- priv->stations[sta_id].sta.remove_immediate_ba_tid = (u8)tid;
|
|
|
- priv->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK;
|
|
|
- spin_unlock_irqrestore(&priv->sta_lock, flags);
|
|
|
-
|
|
|
- return iwl_send_add_sta(priv, &priv->stations[sta_id].sta,
|
|
|
- CMD_ASYNC);
|
|
|
-}
|
|
|
-
|
|
|
int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw,
|
|
|
enum ieee80211_ampdu_mlme_action action,
|
|
|
const u8 *addr, u16 tid, u16 *ssn)
|
|
@@ -2130,10 +2087,10 @@ int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw,
|
|
|
switch (action) {
|
|
|
case IEEE80211_AMPDU_RX_START:
|
|
|
IWL_DEBUG_HT("start Rx\n");
|
|
|
- return iwl4965_rx_agg_start(priv, addr, tid, *ssn);
|
|
|
+ return iwl_rx_agg_start(priv, addr, tid, *ssn);
|
|
|
case IEEE80211_AMPDU_RX_STOP:
|
|
|
IWL_DEBUG_HT("stop Rx\n");
|
|
|
- return iwl4965_rx_agg_stop(priv, addr, tid);
|
|
|
+ return iwl_rx_agg_stop(priv, addr, tid);
|
|
|
case IEEE80211_AMPDU_TX_START:
|
|
|
IWL_DEBUG_HT("start Tx\n");
|
|
|
return iwl_tx_agg_start(priv, addr, tid, ssn);
|