Skip to content

Commit

Permalink
iwlwifi: A-MPDU Tx conform API to mac80211
Browse files Browse the repository at this point in the history
This patch alters the current API in order to fit the new
API mac80211 gives for A-MPDU Tx

Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Ron Rindjunsky authored and John W. Linville committed Feb 29, 2008
1 parent d92684e commit 8114fcf
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 38 deletions.
77 changes: 47 additions & 30 deletions drivers/net/wireless/iwlwifi/iwl-4965.c
Original file line number Diff line number Diff line change
Expand Up @@ -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[] = {
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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 */
Expand Down
4 changes: 0 additions & 4 deletions drivers/net/wireless/iwlwifi/iwl-4965.h
Original file line number Diff line number Diff line change
Expand Up @@ -779,10 +779,6 @@ extern int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw,
enum ieee80211_ampdu_mlme_action action,
const u8 *addr, u16 tid, u16 *ssn);
#ifdef CONFIG_IWL4965_HT_AGG
extern int iwl4965_mac_ht_tx_agg_start(struct ieee80211_hw *hw, u8 *da,
u16 tid, u16 *start_seq_num);
extern int iwl4965_mac_ht_tx_agg_stop(struct ieee80211_hw *hw, u8 *da,
u16 tid, int generator);
extern void iwl4965_turn_off_agg(struct iwl4965_priv *priv, u8 tid);
extern void iwl4965_tl_get_stats(struct iwl4965_priv *priv,
struct ieee80211_hdr *hdr);
Expand Down
4 changes: 0 additions & 4 deletions drivers/net/wireless/iwlwifi/iwl4965-base.c
Original file line number Diff line number Diff line change
Expand Up @@ -9021,10 +9021,6 @@ static struct ieee80211_ops iwl4965_hw_ops = {
#ifdef CONFIG_IWL4965_HT
.conf_ht = iwl4965_mac_conf_ht,
.ampdu_action = iwl4965_mac_ampdu_action,
#ifdef CONFIG_IWL4965_HT_AGG
.ht_tx_agg_start = iwl4965_mac_ht_tx_agg_start,
.ht_tx_agg_stop = iwl4965_mac_ht_tx_agg_stop,
#endif /* CONFIG_IWL4965_HT_AGG */
#endif /* CONFIG_IWL4965_HT */
.hw_scan = iwl4965_mac_hw_scan
};
Expand Down

0 comments on commit 8114fcf

Please sign in to comment.