svn commit: r282378 - head/sys/dev/wpi

Adrian Chadd adrian at FreeBSD.org
Sun May 3 22:49:48 UTC 2015


Author: adrian
Date: Sun May  3 22:49:47 2015
New Revision: 282378
URL: https://svnweb.freebsd.org/changeset/base/282378

Log:
  Add TX status codes (obtained from iwlegacy)
  
  PR:		kern/197143
  Differential Revision:	Andriy Voskoboinyk <s3erios at gmail.com>
  Obtained from:	Linux drivers/net/wireless/iwlegacy

Modified:
  head/sys/dev/wpi/if_wpi.c
  head/sys/dev/wpi/if_wpireg.h

Modified: head/sys/dev/wpi/if_wpi.c
==============================================================================
--- head/sys/dev/wpi/if_wpi.c	Sun May  3 22:47:06 2015	(r282377)
+++ head/sys/dev/wpi/if_wpi.c	Sun May  3 22:49:47 2015	(r282378)
@@ -1983,7 +1983,7 @@ wpi_tx_done(struct wpi_softc *sc, struct
 	/*
 	 * Update rate control statistics for the node.
 	 */
-	if ((status & 0xff) != 1) {
+	if (status & WPI_TX_STATUS_FAIL) {
 		if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
 		ieee80211_ratectl_tx_complete(vap, ni,
 		    IEEE80211_RATECTL_TX_FAILURE, &ackfailcnt, NULL);
@@ -1993,7 +1993,7 @@ wpi_tx_done(struct wpi_softc *sc, struct
 		    IEEE80211_RATECTL_TX_SUCCESS, &ackfailcnt, NULL);
 	}
 
-	ieee80211_tx_complete(ni, m, (status & 0xff) != 1);
+	ieee80211_tx_complete(ni, m, (status & WPI_TX_STATUS_FAIL) != 0);
 
 	WPI_TXQ_STATE_LOCK(sc);
 	ring->queued -= 1;

Modified: head/sys/dev/wpi/if_wpireg.h
==============================================================================
--- head/sys/dev/wpi/if_wpireg.h	Sun May  3 22:47:06 2015	(r282377)
+++ head/sys/dev/wpi/if_wpireg.h	Sun May  3 22:49:47 2015	(r282378)
@@ -256,6 +256,26 @@ struct wpi_tx_stat {
 	uint8_t		rate;
 	uint32_t	duration;
 	uint32_t	status;
+#define WPI_TX_STATUS_SUCCESS			0x01
+#define WPI_TX_STATUS_DIRECT_DONE		0x02
+#define WPI_TX_STATUS_FAIL			0x80
+#define WPI_TX_STATUS_FAIL_SHORT_LIMIT		0x82
+#define WPI_TX_STATUS_FAIL_LONG_LIMIT		0x83
+#define WPI_TX_STATUS_FAIL_FIFO_UNDERRUN	0x84
+#define WPI_TX_STATUS_FAIL_MGMNT_ABORT		0x85
+#define WPI_TX_STATUS_FAIL_NEXT_FRAG		0x86
+#define WPI_TX_STATUS_FAIL_LIFE_EXPIRE		0x87
+#define WPI_TX_STATUS_FAIL_NODE_PS		0x88
+#define WPI_TX_STATUS_FAIL_ABORTED		0x89
+#define WPI_TX_STATUS_FAIL_BT_RETRY		0x8a
+#define WPI_TX_STATUS_FAIL_NODE_INVALID		0x8b
+#define WPI_TX_STATUS_FAIL_FRAG_DROPPED		0x8c
+#define WPI_TX_STATUS_FAIL_TID_DISABLE		0x8d
+#define WPI_TX_STATUS_FAIL_FRAME_FLUSHED	0x8e
+#define WPI_TX_STATUS_FAIL_INSUFFICIENT_CF_POLL	0x8f
+#define WPI_TX_STATUS_FAIL_TX_LOCKED		0x90
+#define WPI_TX_STATUS_FAIL_NO_BEACON_ON_RADAR	0x91
+
 } __packed;
 
 struct wpi_rx_desc {


More information about the svn-src-all mailing list