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 */
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to