diff --git a/dp/wifi3.0/monitor/dp_mon.c b/dp/wifi3.0/monitor/dp_mon.c index bb95884e46..a77bc64522 100644 --- a/dp/wifi3.0/monitor/dp_mon.c +++ b/dp/wifi3.0/monitor/dp_mon.c @@ -510,6 +510,7 @@ static QDF_STATUS dp_vdev_set_monitor_mode(struct cdp_soc_t *dp_soc, } mon_pdev->monitor_configured = true; + mon_pdev->phy_ppdu_id_size = hal_rx_get_phy_ppdu_id_size(soc->hal_soc); /* If advance monitor filter is applied using lite_mon * via vap configuration, required filters are already applied diff --git a/dp/wifi3.0/monitor/dp_mon.h b/dp/wifi3.0/monitor/dp_mon.h index 57007c0b6b..8ac575825b 100644 --- a/dp/wifi3.0/monitor/dp_mon.h +++ b/dp/wifi3.0/monitor/dp_mon.h @@ -1076,7 +1076,7 @@ struct dp_mon_pdev { /* Flag to hold on to monitor destination ring */ bool hold_mon_dest_ring; - /* Flag to inidicate monitor rings are initialized */ + /* Flag to indicate monitor rings are initialized */ uint8_t pdev_mon_init; #ifndef REMOVE_PKT_LOG bool pkt_log_init; @@ -1209,6 +1209,7 @@ struct dp_mon_pdev { bool rssi_dbm_conv_support; struct dp_rx_mon_rssi_offset rssi_offsets; + uint8_t phy_ppdu_id_size; }; struct dp_mon_vdev { diff --git a/hal/wifi3.0/be/hal_be_generic_api.c b/hal/wifi3.0/be/hal_be_generic_api.c index 554a6e5028..5bdb89acc7 100644 --- a/hal/wifi3.0/be/hal_be_generic_api.c +++ b/hal/wifi3.0/be/hal_be_generic_api.c @@ -924,6 +924,11 @@ hal_reset_rx_reo_tid_q_be(struct hal_soc *hal_soc, void *hw_qdesc_vaddr, } #endif +static inline uint8_t hal_rx_get_phy_ppdu_id_size_be(void) +{ + return sizeof(uint64_t); +} + void hal_hw_txrx_default_ops_attach_be(struct hal_soc *hal_soc) { hal_soc->ops->hal_get_reo_qdesc_size = hal_get_reo_qdesc_size_be; @@ -986,4 +991,6 @@ void hal_hw_txrx_default_ops_attach_be(struct hal_soc *hal_soc) hal_get_reo_ent_desc_qdesc_addr_be; hal_soc->ops->hal_rx_en_mcast_fp_data_filter = hal_rx_en_mcast_fp_data_filter_generic_be; + hal_soc->ops->hal_rx_get_phy_ppdu_id_size = + hal_rx_get_phy_ppdu_id_size_be; } diff --git a/hal/wifi3.0/hal_internal.h b/hal/wifi3.0/hal_internal.h index d71659b6e0..3620028426 100644 --- a/hal/wifi3.0/hal_internal.h +++ b/hal/wifi3.0/hal_internal.h @@ -1376,6 +1376,7 @@ struct hal_hw_txrx_ops { uint8_t *(*hal_get_reo_ent_desc_qdesc_addr)(uint8_t *desc); uint64_t (*hal_rx_get_qdesc_addr)(uint8_t *dst_ring_desc, uint8_t *buf); + uint8_t (*hal_rx_get_phy_ppdu_id_size)(void); void (*hal_set_reo_ent_desc_reo_dest_ind)(uint8_t *desc, uint32_t dst_ind); QDF_STATUS diff --git a/hal/wifi3.0/hal_rx.h b/hal/wifi3.0/hal_rx.h index 29a3dc7b01..00ad215342 100644 --- a/hal/wifi3.0/hal_rx.h +++ b/hal/wifi3.0/hal_rx.h @@ -3140,4 +3140,19 @@ bool hal_rx_en_mcast_fp_data_filter(hal_soc_handle_t hal_soc_hdl) return hal_soc->ops->hal_rx_en_mcast_fp_data_filter(); } + +/** + * hal_rx_get_phy_ppdu_id_size() - Get phy ppdu id size + * @hal_soc_hdl: HAL soc handle + * + * Return: phy ppdu id size + */ +static inline uint8_t +hal_rx_get_phy_ppdu_id_size(hal_soc_handle_t hal_soc_hdl) +{ + struct hal_soc *hal_soc = (struct hal_soc *)hal_soc_hdl; + + return hal_soc->ops->hal_rx_get_phy_ppdu_id_size(); +} + #endif /* _HAL_RX_H */ diff --git a/hal/wifi3.0/li/hal_li_generic_api.c b/hal/wifi3.0/li/hal_li_generic_api.c index d3eb4bc90b..8850d409e5 100644 --- a/hal/wifi3.0/li/hal_li_generic_api.c +++ b/hal/wifi3.0/li/hal_li_generic_api.c @@ -1159,6 +1159,11 @@ static uint8_t hal_get_idle_link_bm_id_li(uint8_t chip_id) return WBM_IDLE_DESC_LIST; } +static inline uint8_t hal_rx_get_phy_ppdu_id_size_li(void) +{ + return sizeof(uint32_t); +} + void hal_hw_txrx_default_ops_attach_li(struct hal_soc *hal_soc) { hal_soc->ops->hal_get_reo_qdesc_size = hal_get_reo_qdesc_size_li; @@ -1251,4 +1256,6 @@ void hal_hw_txrx_default_ops_attach_li(struct hal_soc *hal_soc) hal_soc->ops->hal_set_reo_ent_desc_reo_dest_ind = hal_set_reo_ent_desc_reo_dest_ind_li; hal_soc->ops->hal_get_idle_link_bm_id = hal_get_idle_link_bm_id_li; + hal_soc->ops->hal_rx_get_phy_ppdu_id_size = + hal_rx_get_phy_ppdu_id_size_li; }