aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ath9k/rc.c30
-rw-r--r--drivers/net/wireless/ath9k/xmit.c1
2 files changed, 15 insertions, 16 deletions
diff --git a/drivers/net/wireless/ath9k/rc.c b/drivers/net/wireless/ath9k/rc.c
index eb557add6567..61c86c4f9fc4 100644
--- a/drivers/net/wireless/ath9k/rc.c
+++ b/drivers/net/wireless/ath9k/rc.c
@@ -1479,6 +1479,20 @@ static void ath_tx_status(void *priv, struct ieee80211_supported_band *sband,
1479 (is_underrun) ? ATH_11N_TXMAXTRY : 1479 (is_underrun) ? ATH_11N_TXMAXTRY :
1480 tx_info_priv->tx.ts_longretry); 1480 tx_info_priv->tx.ts_longretry);
1481 1481
1482 /* Check if aggregation has to be enabled for this tid */
1483 if (conf_is_ht(&sc->hw->conf)) {
1484 if (ieee80211_is_data_qos(fc)) {
1485 u8 *qc, tid;
1486 struct ath_node *an;
1487
1488 qc = ieee80211_get_qos_ctl(hdr);
1489 tid = qc[0] & 0xf;
1490 an = (struct ath_node *)sta->drv_priv;
1491
1492 if(ath_tx_aggr_check(sc, an, tid))
1493 ieee80211_start_tx_ba_session(sc->hw, hdr->addr1, tid);
1494 }
1495 }
1482exit: 1496exit:
1483 kfree(tx_info_priv); 1497 kfree(tx_info_priv);
1484} 1498}
@@ -1490,7 +1504,6 @@ static void ath_get_rate(void *priv, struct ieee80211_sta *sta, void *priv_sta,
1490 struct sk_buff *skb = txrc->skb; 1504 struct sk_buff *skb = txrc->skb;
1491 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; 1505 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
1492 struct ath_softc *sc = priv; 1506 struct ath_softc *sc = priv;
1493 struct ieee80211_hw *hw = sc->hw;
1494 struct ath_rate_priv *ath_rc_priv = priv_sta; 1507 struct ath_rate_priv *ath_rc_priv = priv_sta;
1495 struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb); 1508 struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb);
1496 int is_probe = 0; 1509 int is_probe = 0;
@@ -1508,21 +1521,6 @@ static void ath_get_rate(void *priv, struct ieee80211_sta *sta, void *priv_sta,
1508 /* Find tx rate for unicast frames */ 1521 /* Find tx rate for unicast frames */
1509 ath_rc_ratefind(sc, ath_rc_priv, ATH_11N_TXMAXTRY, 4, 1522 ath_rc_ratefind(sc, ath_rc_priv, ATH_11N_TXMAXTRY, 4,
1510 tx_info, &is_probe, false); 1523 tx_info, &is_probe, false);
1511
1512 /* Check if aggregation has to be enabled for this tid */
1513 if (conf_is_ht(&hw->conf)) {
1514 if (ieee80211_is_data_qos(fc)) {
1515 u8 *qc, tid;
1516 struct ath_node *an;
1517
1518 qc = ieee80211_get_qos_ctl(hdr);
1519 tid = qc[0] & 0xf;
1520 an = (struct ath_node *)sta->drv_priv;
1521
1522 if(ath_tx_aggr_check(sc, an, tid))
1523 ieee80211_start_tx_ba_session(hw, hdr->addr1, tid);
1524 }
1525 }
1526} 1524}
1527 1525
1528static void ath_rate_init(void *priv, struct ieee80211_supported_band *sband, 1526static void ath_rate_init(void *priv, struct ieee80211_supported_band *sband,
diff --git a/drivers/net/wireless/ath9k/xmit.c b/drivers/net/wireless/ath9k/xmit.c
index 007ca91188d1..d483f3c13501 100644
--- a/drivers/net/wireless/ath9k/xmit.c
+++ b/drivers/net/wireless/ath9k/xmit.c
@@ -677,6 +677,7 @@ int ath_tx_aggr_start(struct ath_softc *sc, struct ieee80211_sta *sta,
677 txtid = ATH_AN_2_TID(an, tid); 677 txtid = ATH_AN_2_TID(an, tid);
678 txtid->state |= AGGR_ADDBA_PROGRESS; 678 txtid->state |= AGGR_ADDBA_PROGRESS;
679 ath_tx_pause_tid(sc, txtid); 679 ath_tx_pause_tid(sc, txtid);
680 *ssn = txtid->seq_start;
680 } 681 }
681 682
682 return 0; 683 return 0;