aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorSujith <Sujith.Manoharan@atheros.com>2009-03-12 23:26:09 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-03-27 20:12:51 -0400
commit95e4acb7331722236b9f11492ae2e96473210ebc (patch)
treef84f1ec006046ae7e6ef598e7dfc3d73ac2d9fc5 /drivers/net
parente71cef37f1f4cb7e9c919cbaabe23438f10a7080 (diff)
ath9k: Fill in ack signal in TX status
This patch fills the ack_signal field in TX status with an appropriate value from the TX descriptor. Signed-off-by: Sujith <Sujith.Manoharan@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/ath9k/xmit.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath9k/xmit.c b/drivers/net/wireless/ath9k/xmit.c
index e3f376611f85..0aae8f349ff0 100644
--- a/drivers/net/wireless/ath9k/xmit.c
+++ b/drivers/net/wireless/ath9k/xmit.c
@@ -1852,13 +1852,17 @@ static int ath_tx_num_badfrms(struct ath_softc *sc, struct ath_buf *bf,
1852 return nbad; 1852 return nbad;
1853} 1853}
1854 1854
1855static void ath_tx_rc_status(struct ath_buf *bf, struct ath_desc *ds, int nbad) 1855static void ath_tx_rc_status(struct ath_buf *bf, struct ath_desc *ds,
1856 int nbad, int txok)
1856{ 1857{
1857 struct sk_buff *skb = (struct sk_buff *)bf->bf_mpdu; 1858 struct sk_buff *skb = (struct sk_buff *)bf->bf_mpdu;
1858 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; 1859 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
1859 struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb); 1860 struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb);
1860 struct ath_tx_info_priv *tx_info_priv = ATH_TX_INFO_PRIV(tx_info); 1861 struct ath_tx_info_priv *tx_info_priv = ATH_TX_INFO_PRIV(tx_info);
1861 1862
1863 if (txok)
1864 tx_info->status.ack_signal = ds->ds_txstat.ts_rssi;
1865
1862 tx_info_priv->update_rc = false; 1866 tx_info_priv->update_rc = false;
1863 if (ds->ds_txstat.ts_status & ATH9K_TXERR_FILT) 1867 if (ds->ds_txstat.ts_status & ATH9K_TXERR_FILT)
1864 tx_info->flags |= IEEE80211_TX_STAT_TX_FILTERED; 1868 tx_info->flags |= IEEE80211_TX_STAT_TX_FILTERED;
@@ -1996,7 +2000,7 @@ static void ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq)
1996 nbad = ath_tx_num_badfrms(sc, bf, txok); 2000 nbad = ath_tx_num_badfrms(sc, bf, txok);
1997 } 2001 }
1998 2002
1999 ath_tx_rc_status(bf, ds, nbad); 2003 ath_tx_rc_status(bf, ds, nbad, txok);
2000 2004
2001 if (bf_isampdu(bf)) 2005 if (bf_isampdu(bf))
2002 ath_tx_complete_aggr(sc, txq, bf, &bf_head, txok); 2006 ath_tx_complete_aggr(sc, txq, bf, &bf_head, txok);