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.c77
1 files changed, 47 insertions, 30 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index cd4f5e383e60..3fc18dc311e9 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -4730,34 +4730,6 @@ static void iwl4965_sta_modify_del_ba_tid(struct iwl4965_priv *priv,
4730 iwl4965_send_add_station(priv, &priv->stations[sta_id].sta, CMD_ASYNC); 4730 iwl4965_send_add_station(priv, &priv->stations[sta_id].sta, CMD_ASYNC);
4731} 4731}
4732 4732
4733int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw,
4734 enum ieee80211_ampdu_mlme_action action,
4735 const u8 *addr, u16 tid, u16 *ssn)
4736{
4737 struct iwl4965_priv *priv = hw->priv;
4738 int sta_id;
4739 DECLARE_MAC_BUF(mac);
4740
4741 IWL_DEBUG_HT("A-MPDU action on da=%s tid=%d ",
4742 print_mac(mac, addr), tid);
4743 sta_id = iwl4965_hw_find_station(priv, addr);
4744 switch (action) {
4745 case IEEE80211_AMPDU_RX_START:
4746 IWL_DEBUG_HT("start Rx\n");
4747 iwl4965_sta_modify_add_ba_tid(priv, sta_id, tid, *ssn);
4748 break;
4749 case IEEE80211_AMPDU_RX_STOP:
4750 IWL_DEBUG_HT("stop Rx\n");
4751 iwl4965_sta_modify_del_ba_tid(priv, sta_id, tid);
4752 break;
4753 default:
4754 IWL_DEBUG_HT("unknown\n");
4755 return -EINVAL;
4756 break;
4757 }
4758 return 0;
4759}
4760
4761#ifdef CONFIG_IWL4965_HT_AGG 4733#ifdef CONFIG_IWL4965_HT_AGG
4762 4734
4763static const u16 default_tid_to_tx_fifo[] = { 4735static 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,
4848} 4820}
4849 4821
4850 4822
4851int iwl4965_mac_ht_tx_agg_stop(struct ieee80211_hw *hw, u8 *da, u16 tid, 4823int iwl4965_mac_ht_tx_agg_stop(struct ieee80211_hw *hw, u8 *da, u16 tid)
4852 int generator)
4853{ 4824{
4854 4825
4855 struct iwl4965_priv *priv = hw->priv; 4826 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,
4891 4862
4892 4863
4893#endif /* CONFIG_IWL4965_HT_AGG */ 4864#endif /* CONFIG_IWL4965_HT_AGG */
4865
4866int iwl4965_mac_ht_tx_agg_start(struct ieee80211_hw *hw, const u8 *da, u16 tid,
4867 u16 *start_seq_num)
4868{
4869 return 0;
4870}
4871
4872int iwl4965_mac_ht_tx_agg_stop(struct ieee80211_hw *hw, const u8 *da, u16 tid)
4873{
4874 return 0;
4875}
4876
4877int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw,
4878 enum ieee80211_ampdu_mlme_action action,
4879 const u8 *addr, u16 tid, u16 *ssn)
4880{
4881 struct iwl4965_priv *priv = hw->priv;
4882 int sta_id;
4883 DECLARE_MAC_BUF(mac);
4884
4885 IWL_DEBUG_HT("A-MPDU action on da=%s tid=%d ",
4886 print_mac(mac, addr), tid);
4887 sta_id = iwl4965_hw_find_station(priv, addr);
4888 switch (action) {
4889 case IEEE80211_AMPDU_RX_START:
4890 IWL_DEBUG_HT("start Rx\n");
4891 iwl4965_sta_modify_add_ba_tid(priv, sta_id, tid, *ssn);
4892 break;
4893 case IEEE80211_AMPDU_RX_STOP:
4894 IWL_DEBUG_HT("stop Rx\n");
4895 iwl4965_sta_modify_del_ba_tid(priv, sta_id, tid);
4896 break;
4897 case IEEE80211_AMPDU_TX_START:
4898 IWL_DEBUG_HT("start Tx\n");
4899 return iwl4965_mac_ht_tx_agg_start(hw, addr, tid, ssn);
4900 case IEEE80211_AMPDU_TX_STOP:
4901 IWL_DEBUG_HT("stop Tx\n");
4902 return iwl4965_mac_ht_tx_agg_stop(hw, addr, tid);
4903 default:
4904 IWL_DEBUG_HT("unknown\n");
4905 return -EINVAL;
4906 break;
4907 }
4908 return 0;
4909}
4910
4894#endif /* CONFIG_IWL4965_HT */ 4911#endif /* CONFIG_IWL4965_HT */
4895 4912
4896/* Set up 4965-specific Rx frame reply handlers */ 4913/* Set up 4965-specific Rx frame reply handlers */