aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/iwm
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2016-04-26 03:24:28 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2016-04-26 03:24:28 +0000
commit5a4e4476473147e54276a22cde34b3db99981d84 (patch)
treea2d4a873f98e1effd46a2a7c3b64233ed70ef8b2 /sys/dev/iwm
parentfc891c1907eb4123f5f2574eb15e4cce22537c79 (diff)
downloadsrc-5a4e4476473147e54276a22cde34b3db99981d84.tar.gz
src-5a4e4476473147e54276a22cde34b3db99981d84.zip
[iwm] add extra transmit setup/completion logging so I can see what's going on.
I'm seeing 5GHz association work but data not work until the rate drops, so I need way more information about what's being programmed into the transmit descriptors. Tested: * 7260AC, STA mode
Notes
Notes: svn path=/head/; revision=298611
Diffstat (limited to 'sys/dev/iwm')
-rw-r--r--sys/dev/iwm/if_iwm.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/sys/dev/iwm/if_iwm.c b/sys/dev/iwm/if_iwm.c
index 7e04d3323b4f..0fad29e570d1 100644
--- a/sys/dev/iwm/if_iwm.c
+++ b/sys/dev/iwm/if_iwm.c
@@ -2410,6 +2410,17 @@ iwm_mvm_rx_tx_cmd_single(struct iwm_softc *sc, struct iwm_rx_packet *pkt,
KASSERT(tx_resp->frame_count == 1, ("too many frames"));
/* Update rate control statistics. */
+ IWM_DPRINTF(sc, IWM_DEBUG_XMIT, "%s: status=0x%04x, seq=%d, fc=%d, btc=%d, frts=%d, ff=%d, irate=%08x, wmt=%d\n",
+ __func__,
+ (int) le16toh(tx_resp->status.status),
+ (int) le16toh(tx_resp->status.sequence),
+ tx_resp->frame_count,
+ tx_resp->bt_kill_count,
+ tx_resp->failure_rts,
+ tx_resp->failure_frame,
+ le32toh(tx_resp->initial_rate),
+ (int) le16toh(tx_resp->wireless_media_time));
+
if (status != IWM_TX_STATUS_SUCCESS &&
status != IWM_TX_STATUS_DIRECT_DONE) {
ieee80211_ratectl_tx_complete(vap, ni,
@@ -2802,8 +2813,12 @@ iwm_tx(struct iwm_softc *sc, struct mbuf *m, struct ieee80211_node *ni, int ac)
KASSERT(data->in != NULL, ("node is NULL"));
IWM_DPRINTF(sc, IWM_DEBUG_XMIT,
- "sending data: qid=%d idx=%d len=%d nsegs=%d\n",
- ring->qid, ring->cur, totlen, nsegs);
+ "sending data: qid=%d idx=%d len=%d nsegs=%d txflags=0x%08x rate_n_flags=0x%08x rateidx=%d\n",
+ ring->qid, ring->cur, totlen, nsegs,
+ le32toh(tx->tx_flags),
+ le32toh(tx->rate_n_flags),
+ (int) tx->initial_rate_index
+ );
/* Fill TX descriptor. */
desc->num_tbs = 2 + nsegs;