diff options
author | adrian <adrian@FreeBSD.org> | 2016-04-26 03:24:28 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2016-04-26 03:24:28 +0000 |
commit | 3322e9c2c92e3f6594bfdd28f84cd7b07e923ce3 (patch) | |
tree | a2d4a873f98e1effd46a2a7c3b64233ed70ef8b2 /sys/dev/iwm/if_iwm.c | |
parent | ac447f806c7344cfd52bebde674707bd60fbec75 (diff) | |
download | FreeBSD-src-3322e9c2c92e3f6594bfdd28f84cd7b07e923ce3.zip FreeBSD-src-3322e9c2c92e3f6594bfdd28f84cd7b07e923ce3.tar.gz |
[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
Diffstat (limited to 'sys/dev/iwm/if_iwm.c')
-rw-r--r-- | sys/dev/iwm/if_iwm.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/sys/dev/iwm/if_iwm.c b/sys/dev/iwm/if_iwm.c index 7e04d33..0fad29e 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; |