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