diff --git a/drivers/staging/fw-api/fw/htt.h b/drivers/staging/fw-api/fw/htt.h index 2f33325eaebc..502971faf14b 100644 --- a/drivers/staging/fw-api/fw/htt.h +++ b/drivers/staging/fw-api/fw/htt.h @@ -218,9 +218,10 @@ * 3.94 Add HTT_H2T_MSG_TYPE_VDEVS_TXRX_STATS_CFG, * HTT_T2H_MSG_TYPE_VDEVS_TXRX_STATS_PERIODIC_IND defs. * 3.95 Add HTT_H2T_MSG_TYPE_TX_MONITOR_CFG def. + * 3.96 Modify HTT_H2T_MSG_TYPE_TX_MONITOR_CFG def. */ #define HTT_CURRENT_VERSION_MAJOR 3 -#define HTT_CURRENT_VERSION_MINOR 95 +#define HTT_CURRENT_VERSION_MINOR 96 #define HTT_NUM_TX_FRAG_DESC 1024 @@ -2593,6 +2594,11 @@ PREPACK struct htt_tx_wbm_completion_v2 { ((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_EXP_FRAME_S)); \ } while (0) +typedef enum { + TX_FRAME_TYPE_UNDEFINED = 0, + TX_FRAME_TYPE_EAPOL = 1, +} htt_tx_wbm_status_frame_type; + /** * @brief HTT TX WBM transmit status from firmware to host * @details @@ -2626,7 +2632,8 @@ PREPACK struct htt_tx_wbm_transmit_status { mcast_valid: 1, /* If this "mcast_valid" is set, the mcast field * contains valid data. */ - reserved0: 8; + frame_type: 4, /* holds htt_tx_wbm_status_frame_type value */ + reserved: 4; A_UINT32 ppdu_start_tsf: 32; /* PPDU Start timestamp added for multicast * packets in the wbm completion path @@ -4704,11 +4711,9 @@ enum htt_srng_ring_id { HTT_RXDMA_NON_MONITOR_DEST_RING, /* Per MDPU indication to host for non-monitor RxDMA traffic upload */ HTT_RXDMA_HOST_BUF_RING2, /* Second ring used by FW to feed removed buffers and update removed packets */ HTT_TX_MON_HOST2MON_BUF_RING, /* Status buffers and Packet buffers are provided by host */ - HTT_TX_MON_MON2HOST_DEST_RING0, /* Used by monitor to fill status buffers and provide to host */ - HTT_TX_MON_MON2HOST_DEST_RING1, /* Used by monitor to fill status buffers and provide to host */ + HTT_TX_MON_MON2HOST_DEST_RING, /* Used by monitor to fill status buffers and provide to host */ HTT_RX_MON_HOST2MON_BUF_RING, /* Status buffers and Packet buffers are provided by host */ - HTT_RX_MON_MON2HOST_DEST_RING0, /* Used by monitor to fill status buffers and provide to host */ - HTT_RX_MON_MON2HOST_DEST_RING1, /* Used by monitor to fill status buffers and provide to host */ + HTT_RX_MON_MON2HOST_DEST_RING, /* Used by monitor to fill status buffers and provide to host */ /* Add Other SRING which can't be directly configured by host software above this line */ }; @@ -5891,30 +5896,31 @@ PREPACK struct htt_rx_ring_selection_cfg_t { * * The message would appear as follows: * - * |31 28|27|26|25|24|23 22|21 19|18 16|15 8|7 |2 0| - * |-----+-----+--+--+-----=-----+------+----------------+---------+-----| - * | rsvd1 |PS|SS| ring_id | pdev_id | msg_type | - * |-----+--------+--------+-----+------+--------------------------------| - * |rsvd2| DATA | CTRL | MGMT| PT | ring_buffer_size | - * |---------------------------------------------------------------+-----| - * | rsvd3 | E | - * |---------------------------------------------------------------------| - * | tlv_filter_mask_in0 | - * |---------------------------------------------------------------------| - * | tlv_filter_mask_in1 | - * |---------------------------------------------------------------------| - * | tlv_filter_mask_in2 | - * |---------------------------------------------------------------------| - * | tlv_filter_mask_in3 | - * |------------------------------------+--------------------------------| - * | tx_peer_entry_word_mask | tx_fes_setup_word_mask | - * |------------------------------------+--------------------------------| - * | tx_msdu_start_word_mask | tx_queue_ext_word_mask | - * |------------------------------------+--------------------------------| - * | pcu_ppdu_setup_word_mask | tx_mpdu_start_word_mask | - * |-----------------------+-----+------+--------------------------------| - * | rsvd4 | EMM | PT | rxpcu_user_setup_word_mask | - * |---------------------------------------------------------------------| + * |31 26|25|24|23 22|21|20|19|18 16|15|14|13|12|11|10|9|8|7|6|5|4|3|2 0| + * |--------+--+--+-----+--+--+--+-----+--+--+--+--+--+--+-+-+-+-+-+-+-+----| + * | rsvd1 |PS|SS| ring_id | pdev_id | msg_type | + * |-----------+--------+--------+-----+------------------------------------| + * | rsvd2 | DATA | CTRL | MGMT| ring_buffer_size | + * |--------------------------------------+--+--+--+--+--+-+-+-+-+-+-+-+----| + * | | M| M| M| M| M|M|M|M|M|M|M|M| | + * | | S| S| S| P| P|P|S|S|S|P|P|P| | + * | | E| E| E| E| E|E|S|S|S|S|S|S| | + * | rsvd3 | D| C| M| D| C|M|D|C|M|D|C|M| E | + * |------------------------------------------------------------------------| + * | tlv_filter_mask_in0 | + * |------------------------------------------------------------------------| + * | tlv_filter_mask_in1 | + * |------------------------------------------------------------------------| + * | tlv_filter_mask_in2 | + * |------------------------------------------------------------------------| + * | tlv_filter_mask_in3 | + * |-----------------+-----------------+---------------------+--------------| + * | tx_msdu_start_wm| tx_queue_ext_wm | tx_peer_entry_wm |tx_fes_stup_wm| + * |------------------------------------------------------------------------| + * | pcu_ppdu_setup_word_mask | + * |--------------------+--+--+--+-----+---------------------+--------------| + * | rsvd4 | D| C| M| PT | rxpcu_usrsetp_wm |tx_mpdu_srt_wm| + * |------------------------------------------------------------------------| * * Where: * PS = pkt_swap @@ -5923,7 +5929,7 @@ PREPACK struct htt_rx_ring_selection_cfg_t { * dword0 - b'0:7 - msg_type: This will be set to * 0x1b (HTT_H2T_MSG_TYPE_TX_MONITOR_CFG) * b'8:15 - pdev_id: - * 0 (for rings at SOC/UMAC level), + * 0 (for rings at SOC level), * 1/2/3 mac id (for rings at LMAC level) * b'16:23 - ring_id : Identify the ring to configure. * More details can be got from enum htt_srng_ring_id @@ -5934,45 +5940,142 @@ PREPACK struct htt_rx_ring_selection_cfg_t { * BUF_RING_CFG_0 defs within HW .h files, * e.g. wmac_top_reg_seq_hwioreg.h * b'26:31 - rsvd1: reserved for future use - * dword1 - b'0:16 - ring_buffer_size: size of bufferes referenced by rx ring, + * dword1 - b'0:15 - ring_buffer_size: size of bufferes referenced by rx ring, * in byte units. * Valid only for HW_TO_SW_RING and SW_TO_HW_RING - * b'16:18 - pkt_type_config_length (PT): MGMT, CTRL, DATA - * Each bit out of 3 bits represents if configurable length - * is valid and needs to programmed. - * b'19:21 - config_length_mgmt(MGMT) for MGMT: Each bit set represent + * b'16:18 - config_length_mgmt(MGMT) for MGMT: Each bit set represent * 64, 128, 256. - * If all 3 bits are set config length is > 256 - * b'22:24 - config_length_ctrl(CTRL) for CTRL: Each bit set represent + * If all 3 bits are set config length is > 256. + * if val is '0', then ignore this field. + * b'19:21 - config_length_ctrl(CTRL) for CTRL: Each bit set represent * 64, 128, 256. - * If all 3 bits are set config length is > 256 - * b'25:27 - config_length_data(DATA) for DATA: Each bit set represent + * If all 3 bits are set config length is > 256. + * if val is '0', then ignore this field. + * b'22:24 - config_length_data(DATA) for DATA: Each bit set represent * 64, 128, 256. - * If all 3 bits are set config length is > 256 - * - b'28:31 - rsvd2: Reserved for future use + * If all 3 bits are set config length is > 256. + * If val is '0', then ignore this field. + * - b'25:31 - rsvd2: Reserved for future use * dword2 - b'0:2 - packet_type_enable_flags(E): MGMT, CTRL, DATA - * b'3:31 - rsvd3: Reserved for future use + * b'3 - filter_in_tx_mpdu_start_mgmt(MPSM): + * If packet_type_enable_flags is '1' for MGMT type, + * monitor will ignore this bit and allow this TLV. + * If packet_type_enable_flags is '0' for MGMT type, + * monitor will use this bit to enable/disable logging + * of this TLV. + * b'4 - filter_in_tx_mpdu_start_ctrl(MPSC) + * If packet_type_enable_flags is '1' for CTRL type, + * monitor will ignore this bit and allow this TLV. + * If packet_type_enable_flags is '0' for CTRL type, + * monitor will use this bit to enable/disable logging + * of this TLV. + * b'5 - filter_in_tx_mpdu_start_data(MPSD) + * If packet_type_enable_flags is '1' for DATA type, + * monitor will ignore this bit and allow this TLV. + * If packet_type_enable_flags is '0' for DATA type, + * monitor will use this bit to enable/disable logging + * of this TLV. + * b'6 - filter_in_tx_msdu_start_mgmt(MSSM) + * If packet_type_enable_flags is '1' for MGMT type, + * monitor will ignore this bit and allow this TLV. + * If packet_type_enable_flags is '0' for MGMT type, + * monitor will use this bit to enable/disable logging + * of this TLV. + * b'7 - filter_in_tx_msdu_start_ctrl(MSSC) + * If packet_type_enable_flags is '1' for CTRL type, + * monitor will ignore this bit and allow this TLV. + * If packet_type_enable_flags is '0' for CTRL type, + * monitor will use this bit to enable/disable logging + * of this TLV. + * b'8 - filter_in_tx_msdu_start_data(MSSD) + * If packet_type_enable_flags is '1' for DATA type, + * monitor will ignore this bit and allow this TLV. + * If packet_type_enable_flags is '0' for DATA type, + * monitor will use this bit to enable/disable logging + * of this TLV. + * b'9 - filter_in_tx_mpdu_end_mgmt(MPEM) + * If packet_type_enable_flags is '1' for MGMT type, + * monitor will ignore this bit and allow this TLV. + * If packet_type_enable_flags is '0' for MGMT type, + * monitor will use this bit to enable/disable logging + * of this TLV. + * If filter_in_TX_MPDU_START = 1 it is recommended + * to set this bit. + * b'10 - filter_in_tx_mpdu_end_ctrl(MPEC) + * If packet_type_enable_flags is '1' for CTRL type, + * monitor will ignore this bit and allow this TLV. + * If packet_type_enable_flags is '0' for CTRL type, + * monitor will use this bit to enable/disable logging + * of this TLV. + * If filter_in_TX_MPDU_START = 1 it is recommended + * to set this bit. + * b'11 - filter_in_tx_mpdu_end_data(MPED) + * If packet_type_enable_flags is '1' for DATA type, + * monitor will ignore this bit and allow this TLV. + * If packet_type_enable_flags is '0' for DATA type, + * monitor will use this bit to enable/disable logging + * of this TLV. + * If filter_in_TX_MPDU_START = 1 it is recommended + * to set this bit. + * b'12 - filter_in_tx_msdu_end_mgmt(MSEM) + * If packet_type_enable_flags is '1' for MGMT type, + * monitor will ignore this bit and allow this TLV. + * If packet_type_enable_flags is '0' for MGMT type, + * monitor will use this bit to enable/disable logging + * of this TLV. + * If filter_in_TX_MSDU_START = 1 it is recommended + * to set this bit. + * b'13 - filter_in_tx_msdu_end_ctrl(MSEC) + * If packet_type_enable_flags is '1' for CTRL type, + * monitor will ignore this bit and allow this TLV. + * If packet_type_enable_flags is '0' for CTRL type, + * monitor will use this bit to enable/disable logging + * of this TLV. + * If filter_in_TX_MSDU_START = 1 it is recommended + * to set this bit. + * b'14 - filter_in_tx_msdu_end_data(MSED) + * If packet_type_enable_flags is '1' for DATA type, + * monitor will ignore this bit and allow this TLV. + * If packet_type_enable_flags is '0' for DATA type, + * monitor will use this bit to enable/disable logging + * of this TLV. + * If filter_in_TX_MSDU_START = 1 it is recommended + * to set this bit. + * b'15:31 - rsvd3: Reserved for future use * dword3 - b'0:31 - tlv_filter_mask_in0: * dword4 - b'0:31 - tlv_filter_mask_in1: * dword5 - b'0:31 - tlv_filter_mask_in2: * dword6 - b'0:31 - tlv_filter_mask_in3: - * dword7 - b'0:15 - tx_fes_setup_word_mask: - * - b'16:31 - tx_peer_entry_word_mask: - * dword8 - b'0:15 - tx_queue_ext_word_mask: - * - b'16:31 - tx_msdu_start_word_mask: - * dword9 - b'0:15 - tx_mpdu_start_word_mask: - * - b'16:31 - pcu_ppdu_setup_word_mask: - * dword10- b'0:15 - rxpcu_user_setup_word_mask: - * - b'16:18 - pkt_type_msdu_or_mpdu_logging (PT): MGMT, CTRL, DATA - * Each bit out of 3 bits represents if MSDU/MPDU - * logging is enabled - * - b'19:21 - enable_msdu_or_mpdu_logging (EMM): For MGMT, CTRL, DATA + * dword7 - b'0:7 - tx_fes_setup_word_mask: + * - b'8:15 - tx_peer_entry_word_mask: + * - b'16:23 - tx_queue_ext_word_mask: + * - b'24:31 - tx_msdu_start_word_mask: + * dword8 - b'0:31 - pcu_ppdu_setup_word_mask: + * dword9 - b'0:7 - tx_mpdu_start_word_mask: + * - b'8:15 - rxpcu_user_setup_word_mask: + * - b'16:18 - pkt_type_enable_msdu_or_mpdu_logging (PT): + * MGMT, CTRL, DATA + * - b'19 - dma_mpdu_mgmt(M): For MGMT + * 0 -> MSDU level logging is enabled + * (valid only if bit is set in + * pkt_type_enable_msdu_or_mpdu_logging) + * 1 -> MPDU level logging is enabled + * (valid only if bit is set in + * pkt_type_enable_msdu_or_mpdu_logging) + * - b'20 - dma_mpdu_ctrl(C) : For CTRL + * 0 -> MSDU level logging is enabled + * (valid only if bit is set in + * pkt_type_enable_msdu_or_mpdu_logging) + * 1 -> MPDU level logging is enabled + * (valid only if bit is set in + * pkt_type_enable_msdu_or_mpdu_logging) + * - b'21 - dma_mpdu_data(D) : For DATA * 0 -> MSDU level logging is enabled * (valid only if bit is set in - * pkt_type_msdu_or_mpdu_logging) + * pkt_type_enable_msdu_or_mpdu_logging) * 1 -> MPDU level logging is enabled * (valid only if bit is set in - * pkt_type_msdu_or_mpdu_logging) + * pkt_type_enable_msdu_or_mpdu_logging) * - b'22:31 - rsvd4 for future use */ PREPACK struct htt_tx_monitor_cfg_t { @@ -5983,26 +6086,39 @@ PREPACK struct htt_tx_monitor_cfg_t { pkt_swap: 1, rsvd1: 6; A_UINT32 ring_buffer_size: 16, - pkt_type_config_length: 3, config_length_mgmt: 3, config_length_ctrl: 3, config_length_data: 3, - rsvd2: 4; + rsvd2: 7; A_UINT32 pkt_type_enable_flags: 3, - rsvd3: 29; + filter_in_tx_mpdu_start_mgmt: 1, + filter_in_tx_mpdu_start_ctrl: 1, + filter_in_tx_mpdu_start_data: 1, + filter_in_tx_msdu_start_mgmt: 1, + filter_in_tx_msdu_start_ctrl: 1, + filter_in_tx_msdu_start_data: 1, + filter_in_tx_mpdu_end_mgmt: 1, + filter_in_tx_mpdu_end_ctrl: 1, + filter_in_tx_mpdu_end_data: 1, + filter_in_tx_msdu_end_mgmt: 1, + filter_in_tx_msdu_end_ctrl: 1, + filter_in_tx_msdu_end_data: 1, + rsvd3: 17; A_UINT32 tlv_filter_mask_in0; A_UINT32 tlv_filter_mask_in1; A_UINT32 tlv_filter_mask_in2; A_UINT32 tlv_filter_mask_in3; - A_UINT32 tx_fes_setup_word_mask: 16, - tx_peer_entry_word_mask: 16; - A_UINT32 tx_queue_ext_word_mask: 16, - tx_msdu_start_word_mask: 16; - A_UINT32 tx_mpdu_start_word_mask: 16, - pcu_ppdu_setup_word_mask: 16; - A_UINT32 rxpcu_user_setup_word_mask: 16, - pkt_type_msdu_or_mpdu_logging: 3, - enable_msdu_or_mpdu_logging: 3, + A_UINT32 tx_fes_setup_word_mask: 8, + tx_peer_entry_word_mask: 8, + tx_queue_ext_word_mask: 8, + tx_msdu_start_word_mask: 8; + A_UINT32 pcu_ppdu_setup_word_mask; + A_UINT32 tx_mpdu_start_word_mask: 8, + rxpcu_user_setup_word_mask: 8, + pkt_type_enable_msdu_or_mpdu_logging: 3, + dma_mpdu_mgmt: 1, + dma_mpdu_ctrl: 1, + dma_mpdu_data: 1, rsvd4: 10; } POSTPACK; @@ -6063,41 +6179,30 @@ PREPACK struct htt_tx_monitor_cfg_t { ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_RING_BUFFER_SIZE_S)); \ } while (0) -#define HTT_TX_MONITOR_CFG_PKT_TYPE_CONFIG_LENGTH_M 0x00070000 -#define HTT_TX_MONITOR_CFG_PKT_TYPE_CONFIG_LENGTH_S 16 -#define HTT_TX_MONITOR_CFG_PKT_TYPE_CONFIG_LENGTH_GET(_var) \ - (((_var) & HTT_TX_MONITOR_CFG_PKT_TYPE_CONFIG_LENGTH_M) >> \ - HTT_TX_MONITOR_CFG_PKT_TYPE_CONFIG_LENGTH_S) -#define HTT_TX_MONITOR_CFG_PKT_TYPE_CONFIG_LENGTH_SET(_var, _val) \ - do { \ - HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_PKT_TYPE_CONFIG_LENGTH, _val); \ - ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_PKT_TYPE_CONFIG_LENGTH_S)); \ - } while (0) - -#define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_MGMT_M 0x00380000 -#define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_MGMT_S 19 +#define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_MGMT_M 0x00070000 +#define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_MGMT_S 16 #define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_MGMT_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_CONFIG_LENGTH_MGMT_M) >> \ HTT_TX_MONITOR_CFG_CONFIG_LENGTH_MGMT_S) -#define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_MGMT_SET(_var, _val) \ +#define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_MGMT_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_CONFIG_LENGTH_MGMT, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_CONFIG_LENGTH_MGMT_S)); \ } while (0) -#define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_CTRL_M 0x01C00000 -#define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_CTRL_S 22 +#define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_CTRL_M 0x00380000 +#define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_CTRL_S 19 #define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_CTRL_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_CONFIG_LENGTH_CTRL_M) >> \ HTT_TX_MONITOR_CFG_CONFIG_LENGTH_CTRL_S) -#define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_CTRL_SET(_var, _val) \ +#define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_CTRL_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_CONFIG_LENGTH_CTRL, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_CONFIG_LENGTH_CTRL_S)); \ } while (0) -#define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_DATA_M 0x0E000000 -#define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_DATA_S 25 +#define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_DATA_M 0x01C00000 +#define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_DATA_S 22 #define HTT_TX_MONITOR_CFG_CONFIG_LENGTH_DATA_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_CONFIG_LENGTH_DATA_M) >> \ HTT_TX_MONITOR_CFG_CONFIG_LENGTH_DATA_S) @@ -6118,6 +6223,138 @@ PREPACK struct htt_tx_monitor_cfg_t { ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_FLAGS_S)); \ } while (0) +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_MGMT_M 0x00000008 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_MGMT_S 3 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_MGMT_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_MGMT_M) >> \ + HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_MGMT_S) +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_MGMT_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_MGMT, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_MGMT_S)); \ + } while (0) + +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_CTRL_M 0x00000010 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_CTRL_S 4 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_CTRL_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_CTRL_M) >> \ + HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_CTRL_S) +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_CTRL_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_CTRL, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_CTRL_S)); \ + } while (0 + +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_DATA_M 0x00000020 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_DATA_S 5 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_DATA_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_DATA_M) >> \ + HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_DATA_S) +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_DATA_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_DATA, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_START_DATA_S)); \ + } while (0) + +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_MGMT_M 0x00000040 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_MGMT_S 6 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_MGMT_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_MGMT_M) >> \ + HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_MGMT_S) +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_MGMT_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_MGMT, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_MGMT_S)); \ + } while (0) + +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_CTRL_M 0x00000080 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_CTRL_S 7 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_CTRL_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_CTRL_M) >> \ + HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_CTRL_S) +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_CTRL_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_CTRL, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_CTRL_S)); \ + } while (0 + +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_DATA_M 0x00000100 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_DATA_S 8 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_DATA_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_DATA_M) >> \ + HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_DATA_S) +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_DATA_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_DATA, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_START_DATA_S)); \ + } while (0) + +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_MGMT_M 0x00000200 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_MGMT_S 9 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_MGMT_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_MGMT_M) >> \ + HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_MGMT_S) +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_MGMT_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_MGMT, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_MGMT_S)); \ + } while (0) + +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_CTRL_M 0x00000400 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_CTRL_S 10 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_CTRL_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_CTRL_M) >> \ + HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_CTRL_S) +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_CTRL_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_CTRL, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_CTRL_S)); \ + } while (0 + +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_DATA_M 0x00000800 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_DATA_S 11 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_DATA_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_DATA_M) >> \ + HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_DATA_S) +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_DATA_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_DATA, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FILTER_IN_TX_MPDU_END_DATA_S)); \ + } while (0) + +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_MGMT_M 0x00001000 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_MGMT_S 12 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_MGMT_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_MGMT_M) >> \ + HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_MGMT_S) +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_MGMT_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_MGMT, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_MGMT_S)); \ + } while (0) + +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_CTRL_M 0x00002000 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_CTRL_S 13 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_CTRL_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_CTRL_M) >> \ + HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_CTRL_S) +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_CTRL_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_CTRL, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_CTRL_S)); \ + } while (0 + +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_DATA_M 0x00004000 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_DATA_S 14 +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_DATA_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_DATA_M) >> \ + HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_DATA_S) +#define HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_DATA_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_DATA, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FILTER_IN_TX_MSDU_END_DATA_S)); \ + } while (0) + #define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_M 0xffffffff #define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_S 0 #define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_GET(_var) \ @@ -6129,7 +6366,7 @@ PREPACK struct htt_tx_monitor_cfg_t { ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_S)); \ } while (0) -#define HTT_TX_MONITOR_CFG_TX_FES_SETUP_WORD_MASK_M 0x0000ffff +#define HTT_TX_MONITOR_CFG_TX_FES_SETUP_WORD_MASK_M 0x000000ff #define HTT_TX_MONITOR_CFG_TX_FES_SETUP_WORD_MASK_S 0 #define HTT_TX_MONITOR_CFG_TX_FES_SETUP_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_TX_FES_SETUP_WORD_MASK_M) >> \ @@ -6140,8 +6377,8 @@ PREPACK struct htt_tx_monitor_cfg_t { ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TX_FES_SETUP_WORD_MASK_S)); \ } while (0) -#define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_WORD_MASK_M 0xffff0000 -#define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_WORD_MASK_S 16 +#define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_WORD_MASK_M 0x0000ff00 +#define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_WORD_MASK_S 8 #define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_WORD_MASK_S) @@ -6151,8 +6388,8 @@ PREPACK struct htt_tx_monitor_cfg_t { ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_WORD_MASK_S)); \ } while (0) -#define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_WORD_MASK_M 0x0000ffff -#define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_WORD_MASK_S 0 +#define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_WORD_MASK_M 0x00ff0000 +#define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_WORD_MASK_S 16 #define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_WORD_MASK_S) @@ -6162,8 +6399,8 @@ PREPACK struct htt_tx_monitor_cfg_t { ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_WORD_MASK_S)); \ } while (0) -#define HTT_TX_MONITOR_CFG_TX_MSDU_START_WORD_MASK_M 0xffff0000 -#define HTT_TX_MONITOR_CFG_TX_MSDU_START_WORD_MASK_S 16 +#define HTT_TX_MONITOR_CFG_TX_MSDU_START_WORD_MASK_M 0xff000000 +#define HTT_TX_MONITOR_CFG_TX_MSDU_START_WORD_MASK_S 24 #define HTT_TX_MONITOR_CFG_TX_MSDU_START_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_TX_MSDU_START_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_TX_MSDU_START_WORD_MASK_S) @@ -6173,7 +6410,18 @@ PREPACK struct htt_tx_monitor_cfg_t { ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TX_MSDU_START_WORD_MASK_S)); \ } while (0) -#define HTT_TX_MONITOR_CFG_TX_MPDU_START_WORD_MASK_M 0x0000ffff +#define HTT_TX_MONITOR_CFG_PCU_PPDU_SETUP_WORD_MASK_M 0xffffffff +#define HTT_TX_MONITOR_CFG_PCU_PPDU_SETUP_WORD_MASK_S 0 +#define HTT_TX_MONITOR_CFG_PCU_PPDU_SETUP_WORD_MASK_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_PCU_PPDU_SETUP_WORD_MASK_M) >> \ + HTT_TX_MONITOR_CFG_PCU_PPDU_SETUP_WORD_MASK_S) +#define HTT_TX_MONITOR_CFG_PCU_PPDU_SETUP_WORD_MASK_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_PCU_PPDU_SETUP_WORD_MASK, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_PCU_PPDU_SETUP_WORD_MASK_S)); \ + } while (0) + +#define HTT_TX_MONITOR_CFG_TX_MPDU_START_WORD_MASK_M 0x000000ff #define HTT_TX_MONITOR_CFG_TX_MPDU_START_WORD_MASK_S 0 #define HTT_TX_MONITOR_CFG_TX_MPDU_START_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_TX_MPDU_START_WORD_MASK_M) >> \ @@ -6184,19 +6432,8 @@ PREPACK struct htt_tx_monitor_cfg_t { ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TX_MPDU_START_WORD_MASK_S)); \ } while (0) -#define HTT_TX_MONITOR_CFG_PCU_PPDU_SETUP_WORD_MASK_M 0xffff0000 -#define HTT_TX_MONITOR_CFG_PCU_PPDU_SETUP_WORD_MASK_S 16 -#define HTT_TX_MONITOR_CFG_PCU_PPDU_SETUP_WORD_MASK_GET(_var) \ - (((_var) & HTT_TX_MONITOR_CFG_PCU_PPDU_SETUP_WORD_MASK_M) >> \ - HTT_TX_MONITOR_CFG_PCU_PPDU_SETUP_WORD_MASK_S) -#define HTT_TX_MONITOR_CFG_PCU_PPDU_SETUP_WORD_MASK_SET(_var, _val) \ - do { \ - HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_PCU_PPDU_SETUP_WORD_MASK, _val); \ - ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_PCU_PPDU_SETUP_WORD_MASK_S)); \ - } while (0) - -#define HTT_TX_MONITOR_CFG_RXPCU_USER_SETUP_WORD_MASK_M 0x0000ffff -#define HTT_TX_MONITOR_CFG_RXPCU_USER_SETUP_WORD_MASK_S 0 +#define HTT_TX_MONITOR_CFG_RXPCU_USER_SETUP_WORD_MASK_M 0x0000ff00 +#define HTT_TX_MONITOR_CFG_RXPCU_USER_SETUP_WORD_MASK_S 8 #define HTT_TX_MONITOR_CFG_RXPCU_USER_SETUP_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_RXPCU_USER_SETUP_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_RXPCU_USER_SETUP_WORD_MASK_S) @@ -6206,63 +6443,73 @@ PREPACK struct htt_tx_monitor_cfg_t { ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_RXPCU_USER_SETUP_WORD_MASK_S)); \ } while (0) -#define HTT_TX_MONITOR_CFG_PKT_TYPE_MSDU_OR_MPDU_LOGGING_MASK_M 0x00070000 -#define HTT_TX_MONITOR_CFG_PKT_TYPE_MSDU_OR_MPDU_LOGGING_MASK_S 16 -#define HTT_TX_MONITOR_CFG_PKT_TYPE_MSDU_OR_MPDU_LOGGING_MASK_GET(_var) \ - (((_var) & HTT_TX_MONITOR_CFG_PKT_TYPE_MSDU_OR_MPDU_LOGGING_MASK_M) >> \ - HTT_TX_MONITOR_CFG_PKT_TYPE_MSDU_OR_MPDU_LOGGING_MASK_S) -#define HTT_TX_MONITOR_CFG_PKT_TYPE_MSDU_OR_MPDU_LOGGING_MASK_SET(_var, _val) \ +#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_MSDU_OR_MPDU_LOGGING_MASK_M 0x00070000 +#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_MSDU_OR_MPDU_LOGGING_MASK_S 16 +#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_MSDU_OR_MPDU_LOGGING_MASK_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_MSDU_OR_MPDU_LOGGING_MASK_M) >> \ + HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_MSDU_OR_MPDU_LOGGING_MASK_S) +#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_MSDU_OR_MPDU_LOGGING_MASK_SET(_var, _val) \ do { \ - HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_PKT_TYPE_MSDU_OR_MPDU_LOGGING_MASK, _val); \ - ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_PKT_TYPE_MSDU_OR_MPDU_LOGGING_MASK_S)); \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_MSDU_OR_MPDU_LOGGING_MASK, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_MSDU_OR_MPDU_LOGGING_MASK_S)); \ } while (0) -#define HTT_TX_MONITOR_CFG_ENABLE_MSDU_OR_MPDU_LOGGING_MASK_M 0x00380000 -#define HTT_TX_MONITOR_CFG_ENABLE_MSDU_OR_MPDU_LOGGING_MASK_S 19 -#define HTT_TX_MONITOR_CFG_ENABLE_MSDU_OR_MPDU_LOGGING_MASK_GET(_var) \ - (((_var) & HTT_TX_MONITOR_CFG_ENABLE_MSDU_OR_MPDU_LOGGING_MASK_M) >> \ - HTT_TX_MONITOR_CFG_ENABLE_MSDU_OR_MPDU_LOGGING_MASK_S) -#define HTT_TX_MONITOR_CFG_ENABLE_MSDU_OR_MPDU_LOGGING_MASK_SET(_var, _val) \ +#define HTT_TX_MONITOR_CFG_DMA_MPDU_MGMT_M 0x00080000 +#define HTT_TX_MONITOR_CFG_DMA_MPDU_MGMT_S 19 +#define HTT_TX_MONITOR_CFG_DMA_MPDU_MGMT_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_DMA_MPDU_MGMT_M) >> \ + HTT_TX_MONITOR_CFG_DMA_MPDU_MGMT_S) +#define HTT_TX_MONITOR_CFG_DMA_MPDU_MGMT_SET(_var, _val) \ do { \ - HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_ENABLE_MSDU_OR_MPDU_LOGGING_MASK, _val); \ - ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_ENABLE_MSDU_OR_MPDU_LOGGING_MASK_S)); \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_DMA_MPDU_MGMT, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_DMA_MPDU_MGMT_S)); \ } while (0) -/* - * pkt_type_config_length - */ -#define HTT_TX_MONITOR_CFG_PKT_TYPE_CONFIG_LENGTH_MGMT_M 0x00000001 -#define HTT_TX_MONITOR_CFG_PKT_TYPE_CONFIG_LENGTH_MGMT_S 0 - -#define HTT_TX_MONITOR_CFG_PKT_TYPE_CONFIG_LENGTH_CTRL_M 0x00000002 -#define HTT_TX_MONITOR_CFG_PKT_TYPE_CONFIG_LENGTH_CTRL_S 1 +#define HTT_TX_MONITOR_CFG_DMA_MPDU_CTRL_M 0x00100000 +#define HTT_TX_MONITOR_CFG_DMA_MPDU_CTRL_S 20 +#define HTT_TX_MONITOR_CFG_DMA_MPDU_CTRL_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_DMA_MPDU_CTRL_M) >> \ + HTT_TX_MONITOR_CFG_DMA_MPDU_CTRL_S) +#define HTT_TX_MONITOR_CFG_DMA_MPDU_CTRL_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_DMA_MPDU_CTRL, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_DMA_MPDU_CTRL_S)); \ + } while (0) -#define HTT_TX_MONITOR_CFG_PKT_TYPE_CONFIG_LENGTH_DATA_M 0x00000004 -#define HTT_TX_MONITOR_CFG_PKT_TYPE_CONFIG_LENGTH_DATA_S 2 +#define HTT_TX_MONITOR_CFG_DMA_MPDU_DATA_M 0x00200000 +#define HTT_TX_MONITOR_CFG_DMA_MPDU_DATA_S 21 +#define HTT_TX_MONITOR_CFG_DMA_MPDU_DATA_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_DMA_MPDU_DATA_M) >> \ + HTT_TX_MONITOR_CFG_DMA_MPDU_DATA_S) +#define HTT_TX_MONITOR_CFG_DMA_MPDU_DATA_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_DMA_MPDU_DATA, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_DMA_MPDU_DATA_S)); \ + } while (0) /* * pkt_type_enable_flags */ -#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_FLAGS_MGMT_M 0x00010000 -#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_FLAGS_MGMT_S 16 +#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_FLAGS_MGMT_M 0x00000001 +#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_FLAGS_MGMT_S 0 -#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_FLAGS_CTRL_M 0x00020000 -#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_FLAGS_CTRL_S 17 +#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_FLAGS_CTRL_M 0x00000002 +#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_FLAGS_CTRL_S 1 -#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_FLAGS_DATA_M 0x00040000 -#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_FLAGS_DATA_S 18 +#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_FLAGS_DATA_M 0x00000004 +#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_FLAGS_DATA_S 2 /* - * pkt_type_msdu_or_mpdu_logging - * */ -#define HTT_TX_MONITOR_CFG_PKT_TYPE_MSDU_OR_MPDU_LOGGING_MGMT_M 0x00010000 -#define HTT_TX_MONITOR_CFG_PKT_TYPE_MSDU_OR_MPDU_LOGGING_MGMT_S 16 + * PKT_TYPE_ENABLE_MSDU_OR_MPDU_LOGGING + */ +#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_MSDU_OR_MPDU_LOGGING_MGMT_M 0x00010000 +#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_MSDU_OR_MPDU_LOGGING_MGMT_S 16 -#define HTT_TX_MONITOR_CFG_PKT_TYPE_MSDU_OR_MPDU_LOGGING_CTRL_M 0x00020000 -#define HTT_TX_MONITOR_CFG_PKT_TYPE_MSDU_OR_MPDU_LOGGING_CTRL_S 17 +#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_MSDU_OR_MPDU_LOGGING_CTRL_M 0x00020000 +#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_MSDU_OR_MPDU_LOGGING_CTRL_S 17 -#define HTT_TX_MONITOR_CFG_PKT_TYPE_MSDU_OR_MPDU_LOGGING_DATA_M 0x00040000 -#define HTT_TX_MONITOR_CFG_PKT_TYPE_MSDU_OR_MPDU_LOGGING_DATA_S 18 +#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_MSDU_OR_MPDU_LOGGING_DATA_M 0x00040000 +#define HTT_TX_MONITOR_CFG_PKT_TYPE_ENABLE_MSDU_OR_MPDU_LOGGING_DATA_S 18 #define HTT_TX_MONITOR_CFG_PKT_TYPE_SET(word, httsym, value) \ do { \ @@ -6272,7 +6519,7 @@ PREPACK struct htt_tx_monitor_cfg_t { #define HTT_TX_MONITOR_CFG_PKT_TYPE_GET(word, httsym) \ (((word) & httsym##_M) >> httsym##_S) -/* mode -> CONFIG_LENGTH, ENABLE_FLAGS, MSDU_OR_MPDU_LOGGING +/* mode -> ENABLE_FLAGS, ENABLE_MSDU_OR_MPDU_LOGGING * type -> MGMT, CTRL, DATA*/ #define htt_tx_ring_pkt_type_set( \ @@ -6488,11 +6735,11 @@ PREPACK struct htt_tx_monitor_cfg_t { #define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN1_MACTX_USER_DESC_PER_USER_M 0x20000000 #define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN1_MACTX_USER_DESC_PER_USER_S 29 -#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN2_L_SIG_A_M 0x40000000 -#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN2_L_SIG_A_S 30 +#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN1_L_SIG_A_M 0x40000000 +#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN1_L_SIG_A_S 30 -#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN2_L_SIG_B_M 0x80000000 -#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN2_L_SIG_B_S 31 +#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN1_L_SIG_B_M 0x80000000 +#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN1_L_SIG_B_S 31 #define HTT_TX_MONITOR_TLV_FILTER_MASK_IN1_SET(word, httsym, enable) \ do { \ @@ -6592,20 +6839,20 @@ PREPACK struct htt_tx_monitor_cfg_t { #define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN2_TQM_ACKED_1K_MPDU_M 0x04000000 #define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN2_TQM_ACKED_1K_MPDU_S 26 -#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN3_TXPCU_BUFFER_STATUS_M 0x08000000 -#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN3_TXPCU_BUFFER_STATUS_S 27 +#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN2_TXPCU_BUFFER_STATUS_M 0x08000000 +#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN2_TXPCU_BUFFER_STATUS_S 27 -#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN3_TXPCU_USER_BUFFER_STATUS_M 0x10000000 -#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN3_TXPCU_USER_BUFFER_STATUS_S 28 +#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN2_TXPCU_USER_BUFFER_STATUS_M 0x10000000 +#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN2_TXPCU_USER_BUFFER_STATUS_S 28 -#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN3_TXDMA_STOP_REQUEST_M 0x20000000 -#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN3_TXDMA_STOP_REQUEST_S 29 +#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN2_TXDMA_STOP_REQUEST_M 0x20000000 +#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN2_TXDMA_STOP_REQUEST_S 29 -#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN3_EXPECTED_RESPONSE_M 0x40000000 -#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN3_EXPECTED_RESPONSE_S 30 +#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN2_EXPECTED_RESPONSE_M 0x40000000 +#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN2_EXPECTED_RESPONSE_S 30 -#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN3_TX_MPDU_COUNT_TRANSFER_END_M 0x80000000 -#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN3_TX_MPDU_COUNT_TRANSFER_END_S 31 +#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN2_TX_MPDU_COUNT_TRANSFER_END_M 0x80000000 +#define HTT_TX_MONITOR_CFG_TLV_FILTER_MASK_IN2_TX_MPDU_COUNT_TRANSFER_END_S 31 #define HTT_TX_MONITOR_TLV_FILTER_MASK_IN2_SET(word, httsym, enable) \ do { \ diff --git a/drivers/staging/fw-api/fw/wmi_services.h b/drivers/staging/fw-api/fw/wmi_services.h index 12a3f0eec747..b570c24cc649 100644 --- a/drivers/staging/fw-api/fw/wmi_services.h +++ b/drivers/staging/fw-api/fw/wmi_services.h @@ -558,6 +558,8 @@ typedef enum { WMI_SERVICE_SPATIAL_REUSE_ENHANCEMENT_SUPPORT = 306, WMI_SERVICE_MU_SNIF = 307, /* FW support MU sniffer */ WMI_SERVICE_ICMP_OFFLOAD = 308, /* FW supports ping offload during APPS suspend */ + WMI_SERVICE_RTSCTS_FOR_UNICAST_MGMT_SUPPORT = 309, /* Indicates FW support RTSCTS for unicast management */ + WMI_SERVICE_DYNAMIC_VDEV_MAC_ADDR_UPDATE_SUPPORT = 310, /* FW supports dynamic vdev mac address updating */ WMI_MAX_EXT2_SERVICE diff --git a/drivers/staging/fw-api/fw/wmi_tlv_defs.h b/drivers/staging/fw-api/fw/wmi_tlv_defs.h index 84312b7ec4e4..a95fff375fb3 100644 --- a/drivers/staging/fw-api/fw/wmi_tlv_defs.h +++ b/drivers/staging/fw-api/fw/wmi_tlv_defs.h @@ -1204,6 +1204,15 @@ typedef enum { WMITLV_TAG_STRUC_wmi_ctrl_path_btcoex_stats_struct, WMITLV_TAG_STRUC_wmi_icmp_offload_fixed_param, WMITLV_TAG_STRUC_WMI_IPV6_ADDR, + WMITLV_TAG_STRUC_wmi_dbs_or_sbs_cap_ext, + WMITLV_TAG_STRUC_wmi_roam_set_param_cmd_fixed_param, + WMITLV_TAG_STRUC_cust_bdf_version_capabilities, + WMITLV_TAG_STRUC_wmi_pdev_fips_extend_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_fips_extend_cmd_init_params, + WMITLV_TAG_STRUC_wmi_pdev_fips_extend_event_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_fips_mode_set_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_update_mac_addr_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_update_mac_addr_conf_event_fixed_param, } WMITLV_TAG_ID; /* @@ -1681,6 +1690,10 @@ typedef enum { OP(WMI_PDEV_SET_BIOS_INTERFACE_CMDID) \ OP(WMI_VDEV_SET_MU_SNIF_CMDID) \ OP(WMI_VDEV_ICMP_OFFLOAD_CMDID) \ + OP(WMI_ROAM_SET_PARAM_CMDID) \ + OP(WMI_PDEV_FIPS_EXTEND_CMDID) \ + OP(WMI_PDEV_FIPS_MODE_SET_CMDID) \ + OP(WMI_VDEV_UPDATE_MAC_ADDR_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -1953,6 +1966,8 @@ typedef enum { OP(WMI_AFC_EVENTID) \ OP(WMI_TWT_ACK_EVENTID) \ OP(WMI_PDEV_AOA_PHASEDELTA_EVENTID) \ + OP(WMI_PDEV_FIPS_EXTEND_EVENTID) \ + OP(WMI_VDEV_UPDATE_MAC_ADDR_CONF_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -3182,6 +3197,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_DOWN_CMDID); WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_PARAM_CMDID); +/* Update vdev mac address */ +#define WMITLV_TABLE_WMI_VDEV_UPDATE_MAC_ADDR_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_update_mac_addr_cmd_fixed_param, wmi_vdev_update_mac_addr_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_UPDATE_MAC_ADDR_CMDID); + /* Pdev suspend Cmd */ #define WMITLV_TABLE_WMI_PDEV_SUSPEND_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_suspend_cmd_fixed_param, wmi_pdev_suspend_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) @@ -4063,6 +4083,18 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_MIMOGAIN_TABLE_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_FIPS_CMDID); +/* FIPS extended cmd */ +#define WMITLV_TABLE_WMI_PDEV_FIPS_EXTEND_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_fips_extend_cmd_fixed_param, wmi_pdev_fips_extend_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_fips_extend_cmd_init_params, cmd_params, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_FIPS_EXTEND_CMDID); + +/* FIPS mode set cmd */ +#define WMITLV_TABLE_WMI_PDEV_FIPS_MODE_SET_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_fips_mode_set_cmd_fixed_param, wmi_pdev_fips_mode_set_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_FIPS_MODE_SET_CMDID); + /* get CCK ANI level */ #define WMITLV_TABLE_WMI_PDEV_GET_ANI_CCK_CONFIG_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_get_ani_cck_config_cmd_fixed_param, wmi_pdev_get_ani_cck_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) @@ -4823,6 +4855,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_MU_SNIF_CMDID); WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_FIXED_STRUC, WMI_IPV6_ADDR, ipv6_addr, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ICMP_OFFLOAD_CMDID); +/* Roam set param Cmd */ +#define WMITLV_TABLE_WMI_ROAM_SET_PARAM_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_set_param_cmd_fixed_param, wmi_roam_set_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SET_PARAM_CMDID); + /************************** TLV definitions of WMI events *******************************/ @@ -4873,7 +4910,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_capabilities, wmi_nan_capabilities, nan_cap, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_SCAN_RADIO_CAPABILITIES_EXT2, wmi_scan_radio_caps, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_twt_caps_params, twt_caps, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_htt_msdu_idx_to_htt_msdu_qtype, htt_msdu_idx_to_qtype_map, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_htt_msdu_idx_to_htt_msdu_qtype, htt_msdu_idx_to_qtype_map, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dbs_or_sbs_cap_ext, dbs_or_sbs_cap_ext, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_cust_bdf_version_capabilities, cust_bdf_version_capabilities, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT2_EVENTID); #define WMITLV_TABLE_WMI_CHAN_RF_CHARACTERIZATION_INFO_EVENTID(id,op,buf,len) \ @@ -5933,6 +5972,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_AFC_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_FIPS_EVENTID); +/* FIPS event */ +#define WMITLV_TABLE_WMI_PDEV_FIPS_EXTEND_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_fips_extend_event_fixed_param, wmi_pdev_fips_extend_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_FIPS_EXTEND_EVENTID); + #define WMITLV_TABLE_WMI_PDEV_CHANNEL_HOPPING_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_channel_hopping_event_fixed_param, wmi_pdev_channel_hopping_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_CHANNEL_HOPPING_EVENTID); @@ -6500,6 +6545,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_HALPHY_CAL_STATUS_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_halphy_cal_bmap_evt_fixed_param, wmi_pdev_set_halphy_cal_bmap_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_HALPHY_CAL_BMAP_EVENTID); +/* Update vdev mac address conf event to host */ +#define WMITLV_TABLE_WMI_VDEV_UPDATE_MAC_ADDR_CONF_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_update_mac_addr_conf_event_fixed_param, wmi_vdev_update_mac_addr_conf_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_UPDATE_MAC_ADDR_CONF_EVENTID); + #ifdef __cplusplus } diff --git a/drivers/staging/fw-api/fw/wmi_unified.h b/drivers/staging/fw-api/fw/wmi_unified.h index 685960f3cc65..6372e81e4433 100644 --- a/drivers/staging/fw-api/fw/wmi_unified.h +++ b/drivers/staging/fw-api/fw/wmi_unified.h @@ -465,6 +465,8 @@ typedef enum { WMI_PDEV_MEC_AGING_TIMER_CONFIG_CMDID, /* Set bios interface table */ WMI_PDEV_SET_BIOS_INTERFACE_CMDID, + WMI_PDEV_FIPS_EXTEND_CMDID, + WMI_PDEV_FIPS_MODE_SET_CMDID, /* VDEV (virtual device) specific commands */ /** vdev create */ @@ -560,6 +562,8 @@ typedef enum { WMI_VDEV_SET_MU_SNIF_CMDID, /** ICMP OFFLOAD */ WMI_VDEV_ICMP_OFFLOAD_CMDID, + /** Update vdev mac address */ + WMI_VDEV_UPDATE_MAC_ADDR_CMDID, /* peer specific commands */ @@ -809,6 +813,8 @@ typedef enum { WMI_ROAM_GET_SCAN_CHANNEL_LIST_CMDID, /** configure MLO parameters for roaming */ WMI_ROAM_MLO_CONFIG_CMDID, + /** set roam params **/ + WMI_ROAM_SET_PARAM_CMDID, /** offload scan specific commands */ /** set offload scan AP profile */ @@ -1552,6 +1558,8 @@ typedef enum { /* Event to get AOA phasedelta values from HALPHY */ WMI_PDEV_AOA_PHASEDELTA_EVENTID, + WMI_PDEV_FIPS_EXTEND_EVENTID, + /* VDEV specific events */ /** VDEV started event in response to VDEV_START request */ WMI_VDEV_START_RESP_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_VDEV), @@ -1622,6 +1630,8 @@ typedef enum { WMI_VDEV_DISCONNECT_EVENTID, /** Send Smart Monitor related params to host */ WMI_VDEV_SMART_MONITOR_EVENTID, + /** Send status of vdev mac address update request to host */ + WMI_VDEV_UPDATE_MAC_ADDR_CONF_EVENTID, /* peer specific events */ /** FW reauet to kick out the station for reasons like inactivity,lack of response ..etc */ @@ -2607,12 +2617,14 @@ typedef struct _wmi_ppe_threshold { #define WMI_DBS_FW_MODE_CFG_DBS_FOR_CXN_BITPOS (29) #define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_BITPOS (28) #define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_BITPOS (27) +#define WMI_DBS_FW_MODE_CFG_ASYNC_SBS_BITPOS (26) #define WMI_DBS_FW_MODE_CFG_DBS_MASK (0x1 << WMI_DBS_FW_MODE_CFG_DBS_BITPOS) #define WMI_DBS_FW_MODE_CFG_AGILE_DFS_MASK (0x1 << WMI_DBS_FW_MODE_CFG_AGILE_DFS_BITPOS) #define WMI_DBS_FW_MODE_CFG_DBS_FOR_CXN_DFS_MASK (0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_CXN_BITPOS) #define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_MASK (0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_BITPOS) #define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_MASK (0x1 << WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_BITPOS) +#define WMI_DBS_FW_MODE_CFG_ASYNC_SBS_MASK (0x1 << WMI_DBS_FW_MODE_CFG_ASYNC_SBS_BITPOS) #define WMI_DBS_FW_MODE_CFG_DBS_SET(fw_mode, value) \ WMI_SET_BITS(fw_mode, WMI_DBS_FW_MODE_CFG_DBS_BITPOS, 1, value) @@ -2624,6 +2636,8 @@ typedef struct _wmi_ppe_threshold { WMI_SET_BITS(fw_mode, WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_BITPOS, 1, value) #define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_SET(fw_mode, value) \ WMI_SET_BITS(fw_mode, WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_BITPOS, 1, value) +#define WMI_DBS_FW_MODE_CFG_ASYNC_SBS_SET(fw_mode, value) \ + WMI_SET_BITS(fw_mode, WMI_DBS_FW_MODE_CFG_ASYNC_SBS_BITPOS, 1, value) #define WMI_DBS_FW_MODE_CFG_DBS_GET(fw_mode) \ ((fw_mode & WMI_DBS_FW_MODE_CFG_DBS_MASK) >> WMI_DBS_FW_MODE_CFG_DBS_BITPOS) @@ -2635,7 +2649,8 @@ typedef struct _wmi_ppe_threshold { ((fw_mode & WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_MASK) >> WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_BITPOS) #define WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_GET(fw_mode) \ ((fw_mode & WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_MASK) >> WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_BITPOS) - +#define WMI_DBS_FW_MODE_CFG_ASYNC_SBS_GET(fw_mode) \ + ((fw_mode & WMI_DBS_FW_MODE_CFG_ASYNC_SBS_MASK) >> WMI_DBS_FW_MODE_CFG_ASYNC_SBS_BITPOS) /** NOTE: This structure cannot be extended in the future without breaking WMI compatibility */ typedef struct _wmi_abi_version { @@ -3103,6 +3118,7 @@ typedef struct { * wmi_nan_capabilities nan_cap; * WMI_SCAN_RADIO_CAPABILITIES_EXT2 wmi_scan_radio_caps[]; * wmi_htt_msdu_idx_to_htt_msdu_qtype htt_msdu_idx_to_qtype_map[]; + * wmi_dbs_or_sbs_cap_ext dbs_or_sbs_cap_ext; */ } wmi_service_ready_ext2_event_fixed_param; @@ -11043,6 +11059,39 @@ typedef struct { wmi_mlo_flags mlo_flags; /*only mlo enable and assoc link flag need by vdev start*/ } wmi_vdev_start_mlo_params; +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_update_mac_addr_cmd_fixed_param */ + /** Unique id identifying the VDEV to update mac addr */ + A_UINT32 vdev_id; + /** New VDEV MAC address to configure */ + wmi_mac_addr vdev_macaddr; + /** New MLD MAC address to configure */ + wmi_mac_addr mld_macaddr; +} wmi_vdev_update_mac_addr_cmd_fixed_param; + +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_update_mac_addr_conf_event_fixed_param */ + /** Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /* + * Status of mac address update request. + * Refer to wmi_vdev_update_mac_addr_conf_status. + */ + A_UINT32 status; +} wmi_vdev_update_mac_addr_conf_event_fixed_param; + +/** VDEV update mac address event response status codes */ +typedef enum { + /** VDEV mac address updated sucessfully */ + WMI_VDEV_UPDATE_MAC_ADDR_CONF_STATUS_SUCCESS = 0, + /** Requested VDEV not found */ + WMI_VDEV_UPDATE_MAC_ADDR_CONF_STATUS_INVALID_VDEVID = 1, + /** Unsupported VDEV combination.eg: received cmd in VDEV connected state */ + WMI_VDEV_UPDATE_MAC_ADDR_CONF_STATUS_NOT_SUPPORTED = 2, + /** FW internal failure to update mac address */ + WMI_VDEV_UPDATE_MAC_ADDR_CONF_STATUS_INTERNAL_FAIL = 3, +} wmi_vdev_update_mac_addr_conf_status; + /** values for vdev_type */ #define WMI_VDEV_TYPE_AP 0x1 #define WMI_VDEV_TYPE_STA 0x2 @@ -12903,7 +12952,13 @@ typedef enum { /* vdev param to configure the Smart Monitor features * Bit : 0 - enable/disable Trigger frames * Bit : 1 - enable/disable QOS frames - * Bit : 2-31 - reserved + * Bit : 2-4 - if 1, fwd beacon frames from connected AP + * - if 2, fwd beacon frames from unconnected AP + * during roam scan/host scan + * - if 3, fwd beacons from unconnected AP during + * roam scan/host scan and from connected AP + * - if 4, don't fwd any beacon frame + * Bit : 5-31 - reserved */ WMI_VDEV_PARAM_SMART_MONITOR_CONFIG, /* 0xA9 */ @@ -14683,6 +14738,7 @@ typedef struct { * (value 1 is enabled, value 0 is disabled) * bits 1:5 are for ring 32 (i.e. ring id value * selected from 0 to 31 values) + * bits 6:7 are for LMAC/peer based routing. * bit 8 for peer based ring selection enabled or not * (value 1 is enabled, value 0 is disabled * bits 9-15 are valid when bit 8 is set to 1) @@ -14692,17 +14748,32 @@ typedef struct { * mcast or not (value 1 is enabled, value 0 is disabled) * bit 11 is for ring selection enabled for filter-pass * BAR or not (value 1 is enabled, value 0 is disabled) - * bit 12-13 is for source ring selection value + * bit 12-14 is for source ring selection value * (value 0 for wbm2rxdma buf ring, * value 1 for fw2rxdma buf ring, * value 2 for sw2rxdma buf ring, - * value 3 for no buf ring) - * bit 14-15 is for destination ring selection value + * value 3 for no buf ring, + * value 4 for sw2rxdma_exception buf ring, + * value 5 for fw2rxdma buf ring) + * bit 15-17 is for destination ring selection value * (value 0 for wbm release ring, * value 1 for rxdma2fw ring, * value 2 for rxdma2sw ring, - * value 3 for rxdma2reo ring) - */ + * value 3 for rxdma2reo ring, + * value 4 for rxdma2fw_pmac1_ring, + * value 5 for rxdma2reo_remote0_ring, + * value 6 for rxdma2reo_remote1_ring) + */ +#define WMI_PEER_HASH_BASED_ROUTING_GET(value32) WMI_GET_BITS(value32, 0x0, 1) +#define WMI_PEER_ROUTING_RING_ID_GET(value32) WMI_GET_BITS(value32, 0x1, 5) +#define WMI_PEER_LMAC_BASED_ROUTING_GET(value32) WMI_GET_BITS(value32, 0x6, 2) +#define WMI_PEER_BASED_RING_SELECTION_GET(value32) WMI_GET_BITS(value32, 0x8, 1) +#define WMI_PEER_FILTER_PASS_UNICAST_GET(value32) WMI_GET_BITS(value32, 0x9, 1) +#define WMI_PEER_FILTER_PASS_MCAST_GET(value32) WMI_GET_BITS(value32, 0xA, 1) +#define WMI_PEER_FILTER_PASS_BAR_GET(value32) WMI_GET_BITS(value32, 0xB, 1) +#define WMI_PEER_FILTER_PASS_SRC_RING_VAL_GET(value32) WMI_GET_BITS(value32, 0xC, 3) +#define WMI_PEER_FILTER_PASS_DEST_RING_VAL_GET(value32) WMI_GET_BITS(value32, 0xF, 3) + #define WMI_PEER_SET_DEFAULT_ROUTING 0x13 /* peer NSS for VHT160 - Extended NSS support */ #define WMI_PEER_NSS_VHT160 0x14 @@ -14769,6 +14840,15 @@ typedef struct { */ #define WMI_PEER_PARAM_DYN_NSS_EN_MASK 0x24 +/* Per peer enable/disable RTS/CTS for unicast management frames. + * Enabling RTS/CTS only applicable after association process of the peer. + * Currently supported for spruce(2x2) chipset. + * Expected values: + * 0 : Disable RTS/CTS for unicast management frames. + * 1 : Enable RTS/CTS for unicast management frames. + */ +#define WMI_PEER_PARAM_EN_RTSCTS_FOR_UNICAST_MGMT 0x25 + /** mimo ps values for the parameter WMI_PEER_MIMO_PS_STATE */ #define WMI_PEER_MIMO_PS_NONE 0x0 #define WMI_PEER_MIMO_PS_STATIC 0x1 @@ -16724,6 +16804,7 @@ typedef enum #define WMI_ROAM_NOTIF_DISASSOC_RECV 0xa /** indicate disassoc received, notif_params to be sent as reason code, notif_params1 to be sent as frame length */ #define WMI_ROAM_NOTIF_SCAN_MODE_SUCCESS_WITH_HO_FAIL 0xb /** indicate that roaming scan mode is successful but cause disconnection and subsequent ** WMI_ROAM_REASON_HO_FAILED is event expected */ +#define WMI_ROAM_NOTIF_SCAN_END 0xc /** indicate roam scan end, notif_params to be sent as WMI_ROAM_TRIGGER_REASON_ID */ /**whenever RIC request information change, host driver should pass all ric related information to firmware (now only support tsepc) * Once, 11r roaming happens, firmware can generate RIC request in reassoc request based on these informations @@ -17431,6 +17512,7 @@ typedef enum event_type_e { WOW_VDEV_DISCONNECT_EVENT, /* 32 + 9 */ WOW_TWT_EVENT, /* 32 + 10 */ WOW_DCS_INTERFERENCE_DET, /* 32 + 11 */ + WOW_ROAM_STATS_EVENT, /* 32 + 12 */ } WOW_WAKE_EVENT_TYPE; typedef enum wake_reason_e { @@ -17506,6 +17588,7 @@ typedef enum wake_reason_e { WOW_REASON_TWT, WOW_REASON_FATAL_EVENT_WAKE, WOW_REASON_DCS_INT_DET, + WOW_REASON_ROAM_STATS, /* add new WOW_REASON_ defs before this line */ WOW_REASON_MAX, @@ -20796,6 +20879,26 @@ typedef enum { WMI_PEER_TID_MAX_NUM_MSDU_IN_MPDU_VALID = 0x00000004, } WMI_PEER_TID_EXT_CONFIG_VALID_BITMAP; +/* + * Per TID level enable/disable of RTS/CTS for that peer. + * Currently applicable only for "data tids" within targets which set + * the RTSCTS_FOR_UNICAST_MGMT WMI service bit. + * + * Enum values/Expected values for disable_rts_cts of + * WMI_PEER_TID_DISABLE_RTS_CTS_VALID as below: + * + * 0 (WMI_RTSCTS_RESET) - Use default RTS/CTS + * 1 (WMI_RTSCTS_DISABLE) - Disable RTS/CTS for every ppdu for that + * configured data TID + * 2 (WMI_RTSCTS_ENABLE) - Enable RTS/CTS for every ppdu for that + * configured data TID + */ +typedef enum { + WMI_RTSCTS_RESET = 0, + WMI_RTSCTS_DISABLE = 1, + WMI_RTSCTS_ENABLE = 2, +} WMI_PEER_TID_CONFIG_RTSCTS_CONTROL; + /** * MPDU Aggregate value for the TID */ @@ -20866,7 +20969,15 @@ typedef struct { */ A_UINT32 tid_config_supported_bitmap; - /* Knob to enable/disable RTS/CTS per TID */ + /* Knob to enable/disable RTS/CTS per TID + * Enum values/Expected values: + * + * 0 (WMI_RTSCTS_RESET) - Use default RTS/CTS + * 1 (WMI_RTSCTS_DISABLE) - Disable RTS/CTS for every ppdu for + * that configured data TID + * 2 (WMI_RTSCTS_ENABLE) - Enable RTS/CTS for every ppdu for + * that configured data TID + */ A_UINT32 disable_rts_cts; /** Size for mpdu aggregation @@ -26016,6 +26127,16 @@ typedef struct wmi_bpf_get_vdev_work_memory_resp_evt_s { #define FIPS_ENGINE_AES_MIC 1 #define FIPS_ERROR_OPER_TIMEOUT 1 +typedef enum { + WMI_FIPS_KEY_CIPHER_CCM, + WMI_FIPS_KEY_CIPHER_GCM +} wmi_fips_key_cipher; + +typedef enum { + WMI_FIPS_DISABLE, + WMI_FIPS_ENABLE +} wmi_fips_mode_set; + /* WMI_PDEV_FIPS_CMDID */ typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_fips_cmd_fixed_param */ @@ -26039,6 +26160,47 @@ typedef struct { */ } wmi_pdev_fips_cmd_fixed_param; +#define MAX_IVNONCE_LEN_FIPS_EXTEND 16 + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_fips_extend_cmd_init_params */ + + A_UINT32 fips_cmd; /* FIPS_ENCRYPT or FIPS_DECRYPT */ + A_UINT32 key_cipher; /* CCM or GCM */ + + A_UINT32 key_len; /* FIPS_KEY_LENGTH_128 or FIPS_KEY_LENGTH_256: 16/32 bytes */ + + A_UINT8 key[WMI_MAX_KEY_LEN]; /* Key if this message is sent by a big-endian host, the byte-ordering of this array needs to be maintained (by manually byte-swapping this array's contents to make up for the automatic byte-swapping done by the copy engine). */ + A_UINT32 nonce_iv_len; + A_UINT8 nonce_iv[MAX_IVNONCE_LEN_FIPS_EXTEND]; /* if this message is sent by a big-endian host, the byte-ordering of this array needs to be maintained (by manually byte-swapping this array's contents to make up for the automatic byte-swapping done by the copy engine).*/ + A_UINT32 tag_len; /* 8 or 16 */ + A_UINT32 aad_len; + A_UINT32 payload_len;/* Plaintext length */ +} wmi_fips_extend_cmd_init_params; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_fips_extend_cmd_fixed_param */ + + A_UINT32 pdev_id; + A_UINT32 fips_cookie; /* Cookie value to identify test vector */ + A_UINT32 frag_idx; /* Fragment Number */ + A_UINT32 more_bit; /* Set to 0 for last fragment number */ + A_UINT32 data_len; /* data length ()*/ + +/* + * Following this structure are the TLVs: + * wmi_fips_extend_cmd_init_params cmd_params + * A_UINT32 data[1]; <-- In Data ((aad, payload in order)) + */ +} wmi_pdev_fips_extend_cmd_fixed_param; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_fips_extend_cmd_fixed_param */ + + A_UINT32 pdev_id; + A_UINT32 fips_mode_set; /*FIPS_MODE_ENABLE -Enable, FIPS_MODE_DISABLE -disable */ +} wmi_pdev_fips_mode_set_cmd_fixed_param; + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_smart_ant_enable_cmd_fixed_param */ union { @@ -26903,6 +27065,20 @@ typedef struct { */ } wmi_pdev_fips_event_fixed_param; +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_fips_event_fixed_param */ + A_UINT32 pdev_id; + A_UINT32 fips_cookie; /* Cookie value to identify test vector */ + A_UINT32 cmd_frag_idx; /* Fragment Number */ + A_UINT32 more_bit; + A_UINT32 error_status; /* Error status: 0 (no err), 1, or OPER_TIMEOUT */ + A_UINT32 data_len; /* Data length CTlen+ TAGlen*/ +/* + * Following this structure is the TLV: + * A_UINT32 data[1]; <-- Out Data (ciphertext+tag) + */ +} wmi_pdev_fips_extend_event_fixed_param; + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_channel_hopping_event_fixed_param */ union { @@ -29695,6 +29871,9 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_PDEV_SET_BIOS_INTERFACE_CMDID); WMI_RETURN_STRING(WMI_VDEV_SET_MU_SNIF_CMDID); WMI_RETURN_STRING(WMI_VDEV_ICMP_OFFLOAD_CMDID); + WMI_RETURN_STRING(WMI_ROAM_SET_PARAM_CMDID); + WMI_RETURN_STRING(WMI_PDEV_FIPS_EXTEND_CMDID); + WMI_RETURN_STRING(WMI_PDEV_FIPS_MODE_SET_CMDID); } return (A_UINT8 *) "Invalid WMI cmd"; @@ -32160,6 +32339,7 @@ typedef struct { A_UINT32 timestamp; /* Timestamp in milli seconds */ A_UINT32 roam_status; /* 0 - Roaming is success, 1 - Roaming is failed */ A_UINT32 roam_fail_reason; /* from WMI_ROAM_FAIL_REASON_ID */ + wmi_mac_addr bssid; /* bssid corresponds to roam_fail_reason */ } wmi_roam_result; typedef struct { @@ -32398,6 +32578,29 @@ typedef struct { wmi_mac_addr partner_link_addr; /* Assigned link address which can be used as self link addr when vdev is not created */ } wmi_roam_mlo_config_cmd_fixed_param; +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_set_param_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** parameter id - see WMI_ROAM_PARAM */ + A_UINT32 param_id; + /** parameter value */ + A_UINT32 param_value; +} wmi_roam_set_param_cmd_fixed_param; + +/** the definition of different ROAM parameters */ +typedef enum { + /* roam param to configure below roam events + * Bit : 0 disabled - do not send WMI_ROAM_NOTIF_SCAN_END in WMI_ROAM_EVENTID + * Bit : 0 enabled - send WMI_ROAM_NOTIF_SCAN_END in WMI_ROAM_EVENTID + * Bit : 1 disabled - do not send 1) WMI_ROAM_STATS_EVENTID 2) WMI_ROAM_NOTIF_SCAN_START and WMI_ROAM_NOTIF_SCAN_END notifs in WMI_ROAM_EVENTID in suspend mode + * Bit : 1 enabled - send 1) WMI_ROAM_STATS_EVENTID 2) WMI_ROAM_NOTIF_SCAN_START and WMI_ROAM_NOTIF_SCAN_END notifs in WMI_ROAM_EVENTID in suspend mode + * Bit : 2-31 - reserved + */ + WMI_ROAM_PARAM_ROAM_EVENTS_CONFIG = 0x1, + /*=== END ROAM_PARAM_PROTOTYPE SECTION ===*/ +} WMI_ROAM_PARAM; + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_big_data_cmd_fixed_param */ A_UINT32 vdev_id; @@ -32525,6 +32728,7 @@ typedef enum { WMI_6GHZ_REG_LPI = 0, WMI_6GHZ_REG_VLP = 1, WMI_6GHZ_REG_SP = 2, + WMI_6GHZ_REG_SP_STA = 3, WMI_6GHZ_REG_MAX = 5, /* Can't expand, b/c used as array length below */ } WMI_6GHZ_REG_TYPE; @@ -34368,6 +34572,16 @@ typedef struct { ~(0xff << (((chain_idx)%WMI_CFR_AGC_GAIN_CHAINS_PER_U32)*8)) | \ (((value)<<((chain_idx)%WMI_CFR_AGC_GAIN_CHAINS_PER_U32)*8)) +#define WMI_UNIFIED_AGC_GAIN_TBL_IDX_GET(tlv, chain_idx) \ + ((A_UINT8) ((tlv)->agc_gain_tbl_index[(chain_idx)/WMI_CFR_AGC_GAIN_CHAINS_PER_U32] >> \ + ((chain_idx)%WMI_CFR_AGC_GAIN_CHAINS_PER_U32)*8) & WMI_UNIFIED_AGC_GAIN_MASK) + +#define WMI_UNIFIED_AGC_GAIN_TBL_IDX_SET(tlv, chain_idx, value) \ + (tlv)->agc_gain_tbl_index[chain_idx/WMI_CFR_AGC_GAIN_CHAINS_PER_U32] = \ + (tlv)->agc_gain_tbl_index[chain_idx/WMI_CFR_AGC_GAIN_CHAINS_PER_U32] & \ + ~(0xff << (((chain_idx)%WMI_CFR_AGC_GAIN_CHAINS_PER_U32)*8)) | \ + (((value)<<((chain_idx)%WMI_CFR_AGC_GAIN_CHAINS_PER_U32)*8)) + typedef struct { /** TLV tag and len; tag equals * WMITLV_TAG_STRUC_wmi_peer_cfr_capture_event_phase_fixed_param */ @@ -34396,6 +34610,25 @@ typedef struct { * the AGC gain indices for individual chains. */ A_UINT32 agc_gain_index[WMI_MAX_CHAINS/WMI_CFR_AGC_GAIN_CHAINS_PER_U32]; + + /* + * Each chain is provided with 8 bits within agc_gain_tbl_index. + * The value for each of these 8-bit portions is between 0 to 2: + * 0 : Default Gain Table + * 1 : Low RF Gain Table. + * Low gain applied at RF as compared to gains applied when + * gain_table _idx = 0 is selected. + * 2 : Very Low RF Gain Table. + * It's similar to above with even lower gains applied. + * + * AoA should use the normal/regular GLUT, thus GAIN_TABLE_IDX + * should always be 0. If it is not 0, it means that there was + * out-of-band blocker causing the hardware to pick a different + * gain table. In that case, AoA result will not be reliable. + * Therefore, the recommendation is to stop doing AoA if + * GAIN_TABLE_IDX != 0 and indicate error. + */ + A_UINT32 agc_gain_tbl_index[WMI_MAX_CHAINS/WMI_CFR_AGC_GAIN_CHAINS_PER_U32]; } wmi_peer_cfr_capture_event_phase_fixed_param; #define WMI_PEER_CFR_CAPTURE_EVT_STATUS_OK 0x80000000 @@ -36218,6 +36451,28 @@ typedef struct { */ } wmi_vdev_set_mu_snif_cmd_param; +typedef struct { + /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_dbs_or_sbs_cap_ext*/ + A_UINT32 tlv_header; + /* hw_mode_id: refer to WMI_HW_MODE_CAPABILITIES */ + A_UINT32 hw_mode_id; + /* + * If sbs_lower_band_end_freq is set to non-zero, it indicates + * async SBS mode is supported, and lower-band/higher band to MAC + * mapping is switch-able. unit: mhz. examples 5180, 5320 + */ + A_UINT32 sbs_lower_band_end_freq; +} wmi_dbs_or_sbs_cap_ext; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals wmi_cust_bdf_version_capabilities*/ + /* Cust bdf Major version in bdf */ + A_UINT32 cust_bdf_ver_major; + /* Cust bdf Minor version in bdf */ + A_UINT32 cust_bdf_ver_minor; +} wmi_cust_bdf_version_capabilities; + + /* ADD NEW DEFS HERE */ diff --git a/drivers/staging/fw-api/fw/wmi_version.h b/drivers/staging/fw-api/fw/wmi_version.h index 24c1b2d16295..128e01708986 100644 --- a/drivers/staging/fw-api/fw/wmi_version.h +++ b/drivers/staging/fw-api/fw/wmi_version.h @@ -36,7 +36,7 @@ #define __WMI_VER_MINOR_ 0 /** WMI revision number has to be incremented when there is a * change that may or may not break compatibility. */ -#define __WMI_REVISION_ 1063 +#define __WMI_REVISION_ 1073 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work