mirror of https://gitee.com/openkylin/linux.git
iwlwifi: A-MPDU Tx conform API to mac80211
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>
This commit is contained in:
parent
d92684e660
commit
8114fcf185
|
@ -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);
|
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
|
#ifdef CONFIG_IWL4965_HT_AGG
|
||||||
|
|
||||||
static const u16 default_tid_to_tx_fifo[] = {
|
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 iwl4965_mac_ht_tx_agg_stop(struct ieee80211_hw *hw, u8 *da, u16 tid)
|
||||||
int generator)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
struct iwl4965_priv *priv = hw->priv;
|
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 */
|
#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 */
|
#endif /* CONFIG_IWL4965_HT */
|
||||||
|
|
||||||
/* Set up 4965-specific Rx frame reply handlers */
|
/* Set up 4965-specific Rx frame reply handlers */
|
||||||
|
|
|
@ -779,10 +779,6 @@ extern int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw,
|
||||||
enum ieee80211_ampdu_mlme_action action,
|
enum ieee80211_ampdu_mlme_action action,
|
||||||
const u8 *addr, u16 tid, u16 *ssn);
|
const u8 *addr, u16 tid, u16 *ssn);
|
||||||
#ifdef CONFIG_IWL4965_HT_AGG
|
#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_turn_off_agg(struct iwl4965_priv *priv, u8 tid);
|
||||||
extern void iwl4965_tl_get_stats(struct iwl4965_priv *priv,
|
extern void iwl4965_tl_get_stats(struct iwl4965_priv *priv,
|
||||||
struct ieee80211_hdr *hdr);
|
struct ieee80211_hdr *hdr);
|
||||||
|
|
|
@ -9021,10 +9021,6 @@ static struct ieee80211_ops iwl4965_hw_ops = {
|
||||||
#ifdef CONFIG_IWL4965_HT
|
#ifdef CONFIG_IWL4965_HT
|
||||||
.conf_ht = iwl4965_mac_conf_ht,
|
.conf_ht = iwl4965_mac_conf_ht,
|
||||||
.ampdu_action = iwl4965_mac_ampdu_action,
|
.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 */
|
#endif /* CONFIG_IWL4965_HT */
|
||||||
.hw_scan = iwl4965_mac_hw_scan
|
.hw_scan = iwl4965_mac_hw_scan
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue