diff --git a/components/pmo/core/src/wlan_pmo_main.c b/components/pmo/core/src/wlan_pmo_main.c index 5fa329c631..0550ebe136 100644 --- a/components/pmo/core/src/wlan_pmo_main.c +++ b/components/pmo/core/src/wlan_pmo_main.c @@ -197,12 +197,26 @@ wlan_pmo_get_igmp_version_support_cfg(struct wlan_objmgr_psoc *psoc, psoc_cfg->igmp_version_support = cfg_get(psoc, CFG_IGMP_VERSION_SUPPORT); } + +static void +wlan_pmo_get_igmp_offload_enable_cfg(struct wlan_objmgr_psoc *psoc, + struct pmo_psoc_cfg *psoc_cfg) +{ + psoc_cfg->igmp_offload_enable = cfg_get(psoc, + CFG_PMO_ENABLE_IGMP_OFFLOAD); +} #else static void wlan_pmo_get_igmp_version_support_cfg(struct wlan_objmgr_psoc *psoc, struct pmo_psoc_cfg *psoc_cfg) {} + +static void +wlan_pmo_get_igmp_offload_enable_cfg(struct wlan_objmgr_psoc *psoc, + struct pmo_psoc_cfg *psoc_cfg) +{} #endif + static void wlan_pmo_init_cfg(struct wlan_objmgr_psoc *psoc, struct pmo_psoc_cfg *psoc_cfg) { @@ -249,6 +263,7 @@ static void wlan_pmo_init_cfg(struct wlan_objmgr_psoc *psoc, psoc_cfg->ito_repeat_count = cfg_get(psoc, CFG_ITO_REPEAT_COUNT); wlan_pmo_ra_filtering_init_cfg(psoc, psoc_cfg); wlan_pmo_gpio_wakeup_init_cfg(psoc, psoc_cfg); + wlan_pmo_get_igmp_offload_enable_cfg(psoc, psoc_cfg); } QDF_STATUS pmo_psoc_open(struct wlan_objmgr_psoc *psoc) diff --git a/components/pmo/dispatcher/inc/wlan_pmo_common_cfg.h b/components/pmo/dispatcher/inc/wlan_pmo_common_cfg.h index c131d8646f..012747979d 100644 --- a/components/pmo/dispatcher/inc/wlan_pmo_common_cfg.h +++ b/components/pmo/dispatcher/inc/wlan_pmo_common_cfg.h @@ -112,6 +112,24 @@ 1, \ "Enable/disable NS offload") +/* + * + * CFG_PMO_ENABLE_IGMP_OFFLOAD - Enable/disable igmp offload + * @Min: 0 + * @Max: 1 + * @Default: 0 + * + * This ini is used to enable/disable igmp offload feature to fw. + * + * Usage: External + * + * + */ +#define CFG_PMO_ENABLE_IGMP_OFFLOAD CFG_INI_BOOL( \ + "igmp_offload_enable", \ + 0, \ + "Enable/disable IGMP offload") + /* * * gEnableDynamicDTIM - Enable Dynamic DTIM @@ -509,6 +527,7 @@ CFG(CFG_PMO_HW_FILTER_MODE) \ CFG(CFG_PMO_ENABLE_HOST_SSDP) \ CFG(CFG_PMO_ENABLE_HOST_NSOFFLOAD) \ + CFG(CFG_PMO_ENABLE_IGMP_OFFLOAD) \ CFG(CFG_PMO_ENABLE_DYNAMIC_DTIM) \ CFG(CFG_PMO_ENABLE_MODULATED_DTIM) \ CFG(CFG_PMO_ENABLE_FORCED_DTIM) \ diff --git a/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h b/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h index 84e1ae750b..8b4cf942fd 100644 --- a/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h +++ b/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h @@ -329,6 +329,7 @@ enum pmo_gpio_wakeup_mode { * @gpio_wakeup_pin: gpio wakeup pin * @gpio_wakeup_mode: gpio wakeup mode * @igmp_version_support: igmp version support + * @igmp_offload_enable: enable/disable igmp offload feature to fw */ struct pmo_psoc_cfg { bool ptrn_match_enable_all_vdev; @@ -402,6 +403,7 @@ struct pmo_psoc_cfg { #endif #ifdef WLAN_FEATURE_IGMP_OFFLOAD uint32_t igmp_version_support; + bool igmp_offload_enable; #endif };