Skip to content
This repository has been archived by the owner on Oct 4, 2019. It is now read-only.

Commit

Permalink
Merge branch 'fw-api/LA.UM.7.2.r1-07500-sdm660.0' into pie
Browse files Browse the repository at this point in the history
* fw-api/LA.UM.7.2.r1-07500-sdm660.0: (32 commits)
  fw-api: CL 7566817 - update fw common interface files
  fw-api: CL 7553672 - update fw common interface files
  fw-api: CL 7552008 - update fw common interface files
  fw-api: CL 7531052 - update fw common interface files
  fw-api: CL 7531051 - update fw common interface files
  fw-api: CL 7520296 - update fw common interface files
  fw-api: CL 7509073 - update fw common interface files
  fw-api: CL 7501901 - update fw common interface files
  fw-api: CL 7493406 - update fw common interface files
  fw-api: CL 7484529 - update fw common interface files
  fw-api: CL 7481713 - update fw common interface files
  fw-api: CL 7475518 - update fw common interface files
  fw-api: CL 7462767 - update fw common interface files
  fw-api: CL 7458032 - update fw common interface files
  fw-api: CL 7445129 - update fw common interface files
  fw-api: CL 7442478 - update fw common interface files
  fw-api: CL 7433623 - update fw common interface files
  fw-api: CL 7433622 - update fw common interface files
  fw-api: CL 7431414 - update fw common interface files
  fw-api: CL 7422688 - update fw common interface files
  ...
  • Loading branch information
akhilnarang committed Sep 11, 2019
2 parents 60b586c + 131c0ef commit 0034775
Show file tree
Hide file tree
Showing 7 changed files with 1,452 additions and 38 deletions.
909 changes: 891 additions & 18 deletions drivers/staging/fw-api/fw/htt.h

Large diffs are not rendered by default.

57 changes: 54 additions & 3 deletions drivers/staging/fw-api/fw/htt_ppdu_stats.h
Original file line number Diff line number Diff line change
Expand Up @@ -1288,8 +1288,32 @@ typedef struct {
resp_ppdu_type: 2;
};
};

/* Note: This is for tracking a UL OFDMA packet */
union {
A_UINT32 trig_cookie_info;
struct {
A_UINT32 trig_cookie: 16,
trig_cookie_rsvd: 15,
trig_cookie_valid: 1;
};
};
} htt_ppdu_stats_user_rate_tlv;

#define HTT_PPDU_STATS_USR_RATE_COOKIE_M 0x0000ffff
#define HTT_PPDU_STATS_USR_RATE_COOKIE_S 0

#define HTT_PPDU_STATS_USR_RATE_VALID_M 0x80000000
#define HTT_PPDU_STATS_USR_RATE_VALID_S 31

#define HTT_PPDU_STATS_USR_RATE_COOKIE_GET(_val) \
(((_val) & HTT_PPDU_STATS_USR_RATE_COOKIE_M) >> \
HTT_PPDU_STATS_USR_RATE_COOKIE_S)

#define HTT_PPDU_STATS_USR_RATE_VALID_GET(_val) \
(((_val) & HTT_PPDU_STATS_USR_RATE_VALID_M) >> \
HTT_PPDU_STATS_USR_RATE_VALID_S)

#define HTT_PPDU_STATS_ENQ_MPDU_BITMAP_TLV_TID_NUM_M 0x000000ff
#define HTT_PPDU_STATS_ENQ_MPDU_BITMAP_TLV_TID_NUM_S 0

Expand Down Expand Up @@ -1855,17 +1879,44 @@ typedef struct {
};
} htt_ppdu_stats_flush_tlv;

#define HTT_PPDU_STATS_TX_MGMTCTRL_TLV_FRAME_LENGTH_M 0x0000ffff
#define HTT_PPDU_STATS_TX_MGMTCTRL_TLV_FRAME_LENGTH_S 0

#define HTT_PPDU_STATS_TX_MGMTCTRL_TLV_FRAME_LENGTH_GET(_var) \
(((_var) & HTT_PPDU_STATS_TX_MGMTCTRL_TLV_FRAME_LENGTH_M) >> \
HTT_PPDU_STATS_TX_MGMTCTRL_TLV_FRAME_LENGTH_S)

#define HTT_PPDU_STATS_TX_MGMTCTRL_TLV_FRAME_LENGTH_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_PPDU_STATS_TX_MGMTCTRL_TLV_FRAME_LENGTH, _val); \
((_var) |= ((_val) << HTT_PPDU_STATS_TX_MGMTCTRL_TLV_FRAME_LENGTH_S)); \
} while (0)

typedef struct {
htt_tlv_hdr_t tlv_hdr;

/*
* BIT [ 15 : 0] :- frame_length
* BIT [ 31 : 16] :- reserved1
*/
union {
A_UINT32 rsvd__frame_length;
struct {
A_UINT32 frame_length: 16,
reserved1: 16; /* set to 0x0 */
};
};

/* Future purpose */
A_UINT32 reserved1; /* set to 0x0 */
A_UINT32 reserved2; /* set to 0x0 */
A_UINT32 reserved3; /* set to 0x0 */

/* mgmt/ctrl frame payload
* The size of payload (in bytes) can be derived from the length in
* tlv parametes, minus the 12 bytes of the above fields.
* The size of the actual mgmt payload (in bytes) can be obtained from
* the frame_length field.
* The size of entire payload including the padding for alignment
* (in bytes) can be derived from the length in tlv parametes,
* minus the 12 bytes of the above fields.
*/
A_UINT32 payload[1];
} htt_ppdu_stats_tx_mgmtctrl_payload_tlv;
Expand Down
70 changes: 67 additions & 3 deletions drivers/staging/fw-api/fw/htt_stats.h
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,15 @@ enum htt_dbg_ext_stats_type {
* 6 bit htt_msdu_flow_stats_tlv
* - config_param2: [Bit31 : Bit0] mac_addr31to0
* - config_param3: [Bit15 : Bit0] mac_addr47to32
* [Bit31 : Bit16] reserved
* [Bit 16] If this bit is set, reset per peer stats
* of corresponding tlv indicated by config
* param 1.
* HTT_DBG_EXT_PEER_STATS_RESET_GET will be
* used to get this bit position.
* WMI_SERVICE_PER_PEER_HTT_STATS_RESET
* indicates that FW supports per peer HTT
* stats reset.
* [Bit31 : Bit17] reserved
* RESP MSG:
* - htt_peer_stats_t
*/
Expand Down Expand Up @@ -218,7 +226,8 @@ enum htt_dbg_ext_stats_type {
/* HTT_DBG_EXT_STATS_PDEV_CCA_STATS
* PARAMS:
* - config_param0:
* [Bit0] - 1 sec interval histogram
* [Bit0] - Clear bit0 to read 1sec,100ms & cumulative CCA stats.
* Set bit0 to 1 to read 1sec interval histogram.
* [Bit1] - 100ms interval histogram
* [Bit3] - Cumulative CCA stats
* RESP MSG:
Expand Down Expand Up @@ -248,7 +257,8 @@ enum htt_dbg_ext_stats_type {
* PARAMS:
* - config_param0:
* [Bit0] vdev_id_set:1
* set to 1 if vdev_id is set and vdev stats are requested
* set to 1 if vdev_id is set and vdev stats are requested.
* set to 0 if pdev_stats sounding stats are requested.
* [Bit8 : Bit1] vdev_id:8
* note:0xFF to get all active vdevs based on pdev_mask.
* [Bit31 : Bit9] rsvd:22
Expand Down Expand Up @@ -289,6 +299,23 @@ enum htt_dbg_ext_stats_type {
HTT_DBG_NUM_EXT_STATS = 256,
};

/*
* Macros to get/set the bit field in config param[3] that indicates to
* clear corresponding per peer stats specified by config param 1
*/
#define HTT_DBG_EXT_PEER_STATS_RESET_M 0x00010000
#define HTT_DBG_EXT_PEER_STATS_RESET_S 16

#define HTT_DBG_EXT_PEER_STATS_RESET_GET(_var) \
(((_var) & HTT_DBG_EXT_PEER_STATS_RESET_M) >> \
HTT_DBG_EXT_PEER_STATS_RESET_S)

#define HTT_DBG_EXT_PEER_STATS_RESET_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_DBG_EXT_PEER_STATS_RESET, _val); \
((_var) |= ((_val) << HTT_DBG_EXT_PEER_STATS_RESET_S)); \
} while (0)

typedef enum {
HTT_STATS_TX_PDEV_CMN_TAG = 0, /* htt_tx_pdev_stats_cmn_tlv */
HTT_STATS_TX_PDEV_UNDERRUN_TAG = 1, /* htt_tx_pdev_stats_urrn_tlv_v */
Expand Down Expand Up @@ -780,6 +807,11 @@ typedef struct {
A_UINT32 wal_rx_recovery_rst_rx_busy_count;
A_UINT32 wal_rx_recovery_rst_phy_mac_hang_count;
A_UINT32 rx_flush_cnt; /* Num rx flush issued */
A_UINT32 phy_warm_reset_reason_tx_lifetime_expiry_cca_stuck;
A_UINT32 phy_warm_reset_reason_tx_consecutive_flush9_war;
A_UINT32 phy_warm_reset_reason_tx_hwsch_reset_war;
A_UINT32 phy_warm_reset_reason_hwsch_wdog_or_cca_wdog_war;
A_UINT32 fw_rx_rings_reset;
} htt_hw_stats_pdev_errs_tlv;

typedef struct {
Expand Down Expand Up @@ -1157,7 +1189,20 @@ typedef enum {
#define HTT_TX_PEER_STATS_NUM_MCS_COUNTERS 12
#define HTT_TX_PEER_STATS_NUM_GI_COUNTERS 4
#define HTT_TX_PEER_STATS_NUM_DCM_COUNTERS 5
/* HTT_TX_PEER_STATS_NUM_BW_COUNTERS:
* bw index 0: rssi_pri20_chain0
* bw index 1: rssi_ext20_chain0
* bw index 2: rssi_ext40_low20_chain0
* bw index 3: rssi_ext40_high20_chain0
*/
#define HTT_TX_PEER_STATS_NUM_BW_COUNTERS 4
/* HTT_RX_PEER_STATS_NUM_BW_EXT_COUNTERS:
* bw index 4 (bw ext index 0): rssi_ext80_low20_chain0
* bw index 5 (bw ext index 1): rssi_ext80_low_high20_chain0
* bw index 6 (bw ext index 2): rssi_ext80_high_low20_chain0
* bw index 7 (bw ext index 3): rssi_ext80_high20_chain0
*/
#define HTT_RX_PEER_STATS_NUM_BW_EXT_COUNTERS 4
#define HTT_TX_PEER_STATS_NUM_SPATIAL_STREAMS 8
#define HTT_TX_PEER_STATS_NUM_PREAMBLE_TYPES HTT_STATS_PREAM_COUNT

Expand Down Expand Up @@ -1236,6 +1281,8 @@ typedef struct _htt_rx_peer_rate_stats_tlv {
A_UINT32 rx_ulmumimo_data_ppdu; /* ppdu level */
A_UINT32 rx_ulmumimo_mpdu_ok; /* mpdu level */
A_UINT32 rx_ulmumimo_mpdu_fail; /* mpdu level */

A_UINT8 rssi_chain_ext[HTT_RX_PEER_STATS_NUM_SPATIAL_STREAMS][HTT_RX_PEER_STATS_NUM_BW_EXT_COUNTERS]; /* units = dB above noise floor */
} htt_rx_peer_rate_stats_tlv;

typedef enum {
Expand Down Expand Up @@ -1723,6 +1770,10 @@ typedef struct {
A_UINT32 ac_mu_mimo_sch_nusers[HTT_TX_PDEV_STATS_NUM_AC_MUMIMO_USER_STATS];
A_UINT32 ax_mu_mimo_sch_nusers[HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS];
A_UINT32 ax_ofdma_sch_nusers[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS];
A_UINT32 ax_ul_ofdma_basic_sch_nusers[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS];
A_UINT32 ax_ul_ofdma_bsr_sch_nusers[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS];
A_UINT32 ax_ul_ofdma_bar_sch_nusers[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS];
A_UINT32 ax_ul_ofdma_brp_sch_nusers[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS];
} htt_tx_pdev_mu_mimo_sch_stats_tlv;

typedef struct {
Expand Down Expand Up @@ -3115,6 +3166,8 @@ typedef struct {
A_UINT32 rx_ulmumimo_data_ppdu[HTT_RX_PDEV_MAX_ULMUMIMO_NUM_USER]; /* ppdu level */
A_UINT32 rx_ulmumimo_mpdu_ok[HTT_RX_PDEV_MAX_ULMUMIMO_NUM_USER]; /* mpdu level */
A_UINT32 rx_ulmumimo_mpdu_fail[HTT_RX_PDEV_MAX_ULMUMIMO_NUM_USER]; /* mpdu level */
A_UINT32 rx_ulofdma_non_data_nusers[HTT_RX_PDEV_MAX_OFDMA_NUM_USER];
A_UINT32 rx_ulofdma_data_nusers[HTT_RX_PDEV_MAX_OFDMA_NUM_USER];
} htt_rx_pdev_rate_stats_tlv;

/* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_RX_RATE
Expand Down Expand Up @@ -3814,6 +3867,17 @@ typedef struct {

A_UINT32 num_obss_tx_ppdu_success;
A_UINT32 num_obss_tx_ppdu_failure;
/* num_sr_tx_tranmissions:
* Counter of TX done by aborting other BSS RX with spatial reuse
* (for cases where rx RSSI from other BSS is below the packet-detection
* threshold for doing spatial reuse)
*/
A_UINT32 num_sr_tx_tranmissions;
/* num_sr_rx_ge_pd_rssi_thr
* counter of rx from other BSS for which RSSI was above the
* packet-detection threshold specified for enabling spatial reuse
*/
A_UINT32 num_sr_rx_ge_pd_rssi_thr;
} htt_pdev_obss_pd_stats_tlv;

/* NOTE:
Expand Down
7 changes: 7 additions & 0 deletions drivers/staging/fw-api/fw/wmi_services.h
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,13 @@ typedef enum {
WMI_SERVICE_TX_COMPL_TSF64 = 210, /* FW supports 64-bit tx TSF in HTT_T2H TX_COMPL_IND msg */
WMI_SERVICE_DSM_ROAM_FILTER = 211, /* FW supports data stall AP mitigation while roaming */
WMI_SERVICE_PACKET_CAPTURE_SUPPORT = 212, /* target supports packet capture Mode (SMART MU) */
WMI_SERVICE_PER_PEER_HTT_STATS_RESET = 213, /* FW supports HTT per peer stats reset facility */
WMI_SERVICE_DELETE_ALL_PEER_SUPPORT = 214, /* target supports cmd to delete all peers within a vdev */
WMI_SERVICE_DYNAMIC_HW_MODE_SWITCH_SUPPORT = 215, /* target supports Dynamic HW mode switch */
WMI_SERVICE_MSDU_FLOW_OVERRIDE_BY_HOST = 216, /* target supports flow override feature */
WMI_SERVICE_WMI_CHAN_RF_CHARACTERIZATION_INFO_EVENT= 217, /* target will send WMI_CHAN_RF_CHARACTERIZATION_INFO_EVENT */
WMI_SERVICE_RX_FSE_SUPPORT = 218, /* target supports flow search through RxOLE FSE hw block */
WMI_SERVICE_FREQINFO_IN_METADATA = 219, /* FW provides freq_info during spectral scan */

/******* ADD NEW SERVICES HERE *******/

Expand Down
Loading

0 comments on commit 0034775

Please sign in to comment.