ath9k: Fill in ack signal in TX status
authorSujith <Sujith.Manoharan@atheros.com>
Fri, 13 Mar 2009 03:26:09 +0000 (08:56 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Sat, 28 Mar 2009 00:12:51 +0000 (20:12 -0400)
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>
drivers/net/wireless/ath9k/xmit.c

index e3f376611f85459ac4b0bb446e072316418e7763..0aae8f349ff0d9a79e44ecc1aa2450da30bd9f30 100644 (file)
@@ -1852,13 +1852,17 @@ static int ath_tx_num_badfrms(struct ath_softc *sc, struct ath_buf *bf,
        return nbad;
 }
 
-static void ath_tx_rc_status(struct ath_buf *bf, struct ath_desc *ds, int nbad)
+static void ath_tx_rc_status(struct ath_buf *bf, struct ath_desc *ds,
+                            int nbad, int txok)
 {
        struct sk_buff *skb = (struct sk_buff *)bf->bf_mpdu;
        struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
        struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb);
        struct ath_tx_info_priv *tx_info_priv = ATH_TX_INFO_PRIV(tx_info);
 
+       if (txok)
+               tx_info->status.ack_signal = ds->ds_txstat.ts_rssi;
+
        tx_info_priv->update_rc = false;
        if (ds->ds_txstat.ts_status & ATH9K_TXERR_FILT)
                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)
                        nbad = ath_tx_num_badfrms(sc, bf, txok);
                }
 
-               ath_tx_rc_status(bf, ds, nbad);
+               ath_tx_rc_status(bf, ds, nbad, txok);
 
                if (bf_isampdu(bf))
                        ath_tx_complete_aggr(sc, txq, bf, &bf_head, txok);