diff --git a/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_internal.h b/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_internal.h index 77b1337baca5..61c290aea844 100644 --- a/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_internal.h +++ b/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_internal.h @@ -2363,6 +2363,14 @@ void dp_is_hw_dbs_enable(struct dp_soc *soc, #if defined(WLAN_SUPPORT_RX_FISA) void dp_rx_dump_fisa_table(struct dp_soc *soc); +/** + * dp_print_fisa_stats() - Print FISA stats + * @soc: DP soc handle + * + * Return: None + */ +void dp_print_fisa_stats(struct dp_soc *soc); + /* * dp_rx_fst_update_cmem_params() - Update CMEM FST params * @soc: DP SoC context @@ -2388,6 +2396,10 @@ static inline void dp_rx_fst_update_pm_suspend_status(struct dp_soc *soc, bool suspended) { } + +static inline void dp_print_fisa_stats(struct dp_soc *soc) +{ +} #endif /* WLAN_SUPPORT_RX_FISA */ #ifdef MAX_ALLOC_PAGE_SIZE diff --git a/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_main.c b/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_main.c index 7016cfacc9e6..c0806f998969 100644 --- a/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_main.c +++ b/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_main.c @@ -10101,6 +10101,7 @@ static QDF_STATUS dp_txrx_dump_stats(struct cdp_soc_t *psoc, uint16_t value, dp_txrx_path_stats(soc); dp_print_soc_interrupt_stats(soc); hal_dump_reg_write_stats(soc->hal_soc); + dp_print_fisa_stats(soc); break; case CDP_RX_RING_STATS: diff --git a/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_types.h b/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_types.h index 25ba47531cd1..65057170c078 100644 --- a/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_types.h +++ b/drivers/staging/qca-wifi-host-cmn/dp/wifi3.0/dp_types.h @@ -3134,10 +3134,23 @@ struct dp_rx_fst { #define DP_RX_GET_SW_FT_ENTRY_SIZE sizeof(struct dp_rx_fse) #elif WLAN_SUPPORT_RX_FISA +/** + * struct dp_fisa_reo_mismatch_stats - reo mismatch sub-case stats for FISA + * @allow_cce_match: packet allowed due to cce mismatch + * @allow_fse_metdata_mismatch: packet allowed since it belongs to same flow, + * only fse_metadata is not same. + * @allow_non_aggr: packet allowed due to any other reason. + */ +struct dp_fisa_reo_mismatch_stats { + uint32_t allow_cce_match; + uint32_t allow_fse_metdata_mismatch; + uint32_t allow_non_aggr; +}; + struct dp_fisa_stats { /* flow index invalid from RX HW TLV */ uint32_t invalid_flow_index; - uint32_t reo_mismatch; + struct dp_fisa_reo_mismatch_stats reo_mismatch; uint32_t incorrect_rdi; }; diff --git a/drivers/staging/qca-wifi-host-cmn/umac/regulatory/core/src/reg_build_chan_list.c b/drivers/staging/qca-wifi-host-cmn/umac/regulatory/core/src/reg_build_chan_list.c index 40959dbe6df2..b5d40a746a81 100644 --- a/drivers/staging/qca-wifi-host-cmn/umac/regulatory/core/src/reg_build_chan_list.c +++ b/drivers/staging/qca-wifi-host-cmn/umac/regulatory/core/src/reg_build_chan_list.c @@ -1079,7 +1079,7 @@ reg_append_mas_chan_list_for_6g_lpi(struct wlan_regulatory_pdev_priv_obj struct regulatory_channel *master_chan_list_6g_client_lpi; uint8_t i, j; - if (!pdev_priv_obj->reg_rules.num_of_6g_ap_reg_rules[REG_INDOOR_AP]) { + if (!pdev_priv_obj->reg_rules.num_of_6g_client_reg_rules[REG_INDOOR_AP]) { reg_debug("No LPI reg rules"); return; } @@ -1117,7 +1117,7 @@ reg_append_mas_chan_list_for_6g_vlp(struct wlan_regulatory_pdev_priv_obj struct regulatory_channel *master_chan_list_6g_client_vlp; uint8_t i, j; - if (!pdev_priv_obj->reg_rules.num_of_6g_ap_reg_rules[REG_VERY_LOW_POWER_AP]) { + if (!pdev_priv_obj->reg_rules.num_of_6g_client_reg_rules[REG_VERY_LOW_POWER_AP]) { reg_debug("No VLP reg rules"); return; } @@ -1758,9 +1758,8 @@ static void reg_store_regulatory_ext_info_to_socpriv( soc_reg->domain_code_6g_ap[i] = regulat_info->domain_code_6g_ap[i]; - if (soc_reg->domain_code_6g_ap[i]) - soc_reg->mas_chan_params[phy_id]. - is_6g_channel_list_populated = true; + soc_reg->mas_chan_params[phy_id]. + is_6g_channel_list_populated = true; qdf_mem_copy(soc_reg->domain_code_6g_client[i], regulat_info->domain_code_6g_client[i],