diff --git a/fw/htt.h b/fw/htt.h index 2a4e02955d..d3293f7f60 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -7173,33 +7173,35 @@ PREPACK struct htt_rx_ring_selection_cfg_t { * * The message would appear as follows: * - * |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| - * |------------------------------------------------------------------------| + * |31 28|27|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|MF|TM|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: + * MF = MAC address filtering enable + * TM = tx monitor global enable * PS = pkt_swap * SS = status_swap * The message is interpreted as follows: @@ -7218,7 +7220,9 @@ PREPACK struct htt_rx_ring_selection_cfg_t { * e.g. wmac_top_reg_seq_hwioreg.h * b'26 - tx_mon_global_en: Enable/Disable global register * configuration in Tx monitor module. - * b'27:31 - rsvd1: reserved for future use + * b'27 - mac_addr_filter_en: + * Enable/Disable Mac Address based filter. + * b'28:31 - rsvd1: reserved for future use * 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 @@ -7364,7 +7368,8 @@ PREPACK struct htt_tx_monitor_cfg_t { status_swap: 1, pkt_swap: 1, tx_mon_global_en: 1, - rsvd1: 5; + mac_addr_filter_en: 1, + rsvd1: 4; A_UINT32 ring_buffer_size: 16, config_length_mgmt: 3, config_length_ctrl: 3, @@ -7467,6 +7472,17 @@ PREPACK struct htt_tx_monitor_cfg_t { ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TX_MON_GLOBAL_EN_S)); \ } while (0) +#define HTT_TX_MONITOR_CFG_MAC_ADDR_FILTER_EN_M 0x08000000 +#define HTT_TX_MONITOR_CFG_MAC_ADDR_FILTER_EN_S 27 +#define HTT_TX_MONITOR_CFG_MAC_ADDR_FILTER_EN_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_MAC_ADDR_FILTER_EN_M) >> \ + HTT_TX_MONITOR_CFG_MAC_ADDR_FILTER_EN_S) +#define HTT_TX_MONITOR_CFG_MAC_ADDR_FILTER_EN_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_MAC_ADDR_FILTER_EN, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_MAC_ADDR_FILTER_EN_S)); \ + } while (0) + #define HTT_TX_MONITOR_CFG_RING_BUFFER_SIZE_M 0x0000ffff #define HTT_TX_MONITOR_CFG_RING_BUFFER_SIZE_S 0 #define HTT_TX_MONITOR_CFG_RING_BUFFER_SIZE_GET(_var) \