svn commit: r302446 - head/sys/dev/ath/ath_hal

Adrian Chadd adrian at FreeBSD.org
Fri Jul 8 19:16:52 UTC 2016


Author: adrian
Date: Fri Jul  8 19:16:50 2016
New Revision: 302446
URL: https://svnweb.freebsd.org/changeset/base/302446

Log:
  [ath_hal] extend the TX/RX descriptor layout to include location/beamforming fields.
  
  * extend the TX timestamp to 32 bits, as the AR5416 and later does a full
    32 bit TX timestamp instead of 15 or 16 bits.
  * add RX descriptor fields for PHY uploaded information (coming soon)
  * add flags for RX/TX fast timestamp, hardware upload, etc
  * add a flag for TX to request ToD/ToA location information.

Modified:
  head/sys/dev/ath/ath_hal/ah_desc.h

Modified: head/sys/dev/ath/ath_hal/ah_desc.h
==============================================================================
--- head/sys/dev/ath/ath_hal/ah_desc.h	Fri Jul  8 19:16:45 2016	(r302445)
+++ head/sys/dev/ath/ath_hal/ah_desc.h	Fri Jul  8 19:16:50 2016	(r302446)
@@ -46,7 +46,8 @@
  */
 struct ath_tx_status {
 	uint16_t	ts_seqnum;	/* h/w assigned sequence number */
-	uint16_t	ts_tstamp;	/* h/w assigned timestamp */
+	uint16_t	ts_pad1[1];
+	uint32_t	ts_tstamp;	/* h/w assigned timestamp */
 	uint8_t		ts_status;	/* frame status, 0 => xmit ok */
 	uint8_t		ts_rate;	/* h/w transmit rate index */
 	int8_t		ts_rssi;	/* tx ack RSSI */
@@ -86,6 +87,7 @@ struct ath_tx_status {
 #define	HAL_TX_DESC_CFG_ERR	0x10	/* Error in 20/40 desc config */
 #define	HAL_TX_DATA_UNDERRUN	0x20	/* Tx buffer underrun */
 #define	HAL_TX_DELIM_UNDERRUN	0x40	/* Tx delimiter underrun */
+#define	HAL_TX_FAST_TS		0x80	/* Tx locationing timestamp */
 
 /*
  * Receive descriptor status.  This structure is filled
@@ -128,6 +130,9 @@ struct ath_rx_status {
 	uint16_t	rs_flags;	/* misc flags */
 	uint8_t		rs_num_delims;	/* number of delims in aggr */
 	uint8_t		rs_spare0;	/* padding */
+	uint8_t		rs_ness;	/* number of extension spatial streams */
+	uint8_t		rs_hw_upload_data_type;	/* hw upload format */
+	uint16_t	rs_spare1;
 	uint32_t	rs_evm0;	/* evm bytes */
 	uint32_t	rs_evm1;
 	uint32_t	rs_evm2;
@@ -156,6 +161,11 @@ struct ath_rx_status {
 #define	HAL_RX_HI_RX_CHAIN	0x0080	/* SM power save: hi Rx chain control */
 #define	HAL_RX_IS_APSD		0x0100	/* Is ASPD trigger frame */
 #define	HAL_RX_STBC		0x0200	/* Is an STBC frame */
+#define	HAL_RX_LOC_INFO		0x0400	/* RX locationing information */
+
+#define	HAL_RX_HW_UPLOAD_DATA	0x1000	/* This is a hardware data frame */
+#define	HAL_RX_HW_SOUNDING	0x2000	/* Rx sounding frame (TxBF, positioning) */
+#define	HAL_RX_UPLOAD_VALID	0x4000	/* This hardware data frame is valid */
 
 /*
  * This is the format of RSSI[2] on the AR9285/AR9485.
@@ -282,6 +292,7 @@ struct ath_desc_status {
 #define	HAL_TXDESC_LOWRXCHAIN	0x0400	/* switch to low RX chain */
 #define	HAL_TXDESC_LDPC		0x1000	/* Set LDPC TX for all rates */
 #define	HAL_TXDESC_HWTS		0x2000	/* Request Azimuth Timestamp in TX payload */
+#define	HAL_TXDESC_POS		0x4000	/* Request ToD/ToA locationing */
 
 /* flags passed to rx descriptor setup methods */
 #define	HAL_RXDESC_INTREQ	0x0020	/* enable per-descriptor interrupt */


More information about the svn-src-all mailing list