|
@@ -4730,34 +4730,6 @@ static void iwl4965_sta_modify_del_ba_tid(struct iwl4965_priv *priv,
|
|
|
iwl4965_send_add_station(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)
|
|
|
-{
|
|
|
- struct iwl4965_priv *priv = hw->priv;
|
|
|
- int sta_id;
|
|
|
- DECLARE_MAC_BUF(mac);
|
|
|
-
|
|
|
- IWL_DEBUG_HT("A-MPDU action on da=%s tid=%d ",
|
|
|
- print_mac(mac, addr), tid);
|
|
|
- sta_id = iwl4965_hw_find_station(priv, addr);
|
|
|
- switch (action) {
|
|
|
- case IEEE80211_AMPDU_RX_START:
|
|
|
- IWL_DEBUG_HT("start Rx\n");
|
|
|
- iwl4965_sta_modify_add_ba_tid(priv, sta_id, tid, *ssn);
|
|
|
- break;
|
|
|
- case IEEE80211_AMPDU_RX_STOP:
|
|
|
- IWL_DEBUG_HT("stop Rx\n");
|
|
|
- iwl4965_sta_modify_del_ba_tid(priv, sta_id, tid);
|
|
|
- break;
|
|
|
- default:
|
|
|
- IWL_DEBUG_HT("unknown\n");
|
|
|
- return -EINVAL;
|
|
|
- break;
|
|
|
- }
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
#ifdef CONFIG_IWL4965_HT_AGG
|
|
|
|
|
|
static const u16 default_tid_to_tx_fifo[] = {
|
|
@@ -4848,8 +4820,7 @@ int iwl4965_mac_ht_tx_agg_start(struct ieee80211_hw *hw, u8 *da, u16 tid,
|
|
|
}
|
|
|
|
|
|
|
|
|
-int iwl4965_mac_ht_tx_agg_stop(struct ieee80211_hw *hw, u8 *da, u16 tid,
|
|
|
- int generator)
|
|
|
+int iwl4965_mac_ht_tx_agg_stop(struct ieee80211_hw *hw, u8 *da, u16 tid)
|
|
|
{
|
|
|
|
|
|
struct iwl4965_priv *priv = hw->priv;
|
|
@@ -4891,6 +4862,52 @@ int iwl4965_mac_ht_tx_agg_stop(struct ieee80211_hw *hw, u8 *da, u16 tid,
|
|
|
|
|
|
|
|
|
#endif /* CONFIG_IWL4965_HT_AGG */
|
|
|
+
|
|
|
+int iwl4965_mac_ht_tx_agg_start(struct ieee80211_hw *hw, const u8 *da, u16 tid,
|
|
|
+ u16 *start_seq_num)
|
|
|
+{
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+int iwl4965_mac_ht_tx_agg_stop(struct ieee80211_hw *hw, const u8 *da, u16 tid)
|
|
|
+{
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw,
|
|
|
+ enum ieee80211_ampdu_mlme_action action,
|
|
|
+ const u8 *addr, u16 tid, u16 *ssn)
|
|
|
+{
|
|
|
+ struct iwl4965_priv *priv = hw->priv;
|
|
|
+ int sta_id;
|
|
|
+ DECLARE_MAC_BUF(mac);
|
|
|
+
|
|
|
+ IWL_DEBUG_HT("A-MPDU action on da=%s tid=%d ",
|
|
|
+ print_mac(mac, addr), tid);
|
|
|
+ sta_id = iwl4965_hw_find_station(priv, addr);
|
|
|
+ switch (action) {
|
|
|
+ case IEEE80211_AMPDU_RX_START:
|
|
|
+ IWL_DEBUG_HT("start Rx\n");
|
|
|
+ iwl4965_sta_modify_add_ba_tid(priv, sta_id, tid, *ssn);
|
|
|
+ break;
|
|
|
+ case IEEE80211_AMPDU_RX_STOP:
|
|
|
+ IWL_DEBUG_HT("stop Rx\n");
|
|
|
+ iwl4965_sta_modify_del_ba_tid(priv, sta_id, tid);
|
|
|
+ break;
|
|
|
+ case IEEE80211_AMPDU_TX_START:
|
|
|
+ IWL_DEBUG_HT("start Tx\n");
|
|
|
+ return iwl4965_mac_ht_tx_agg_start(hw, addr, tid, ssn);
|
|
|
+ case IEEE80211_AMPDU_TX_STOP:
|
|
|
+ IWL_DEBUG_HT("stop Tx\n");
|
|
|
+ return iwl4965_mac_ht_tx_agg_stop(hw, addr, tid);
|
|
|
+ default:
|
|
|
+ IWL_DEBUG_HT("unknown\n");
|
|
|
+ return -EINVAL;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
#endif /* CONFIG_IWL4965_HT */
|
|
|
|
|
|
/* Set up 4965-specific Rx frame reply handlers */
|