diff --git a/umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h b/umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h index b2aaa3d0ff97..ffb157a595aa 100644 --- a/umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h +++ b/umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h @@ -1739,4 +1739,18 @@ static inline bool policy_mgr_is_scan_simultaneous_capable( bool policy_mgr_is_mcc_adaptive_scheduler_enabled( struct wlan_objmgr_psoc *psoc); +/** + * policy_mgr_set_user_cfg() - Function to set user cfg variables + * required by policy manager component + * @psoc: PSOC object information + * @user_cfg: User config valiables structure pointer + * + * This function sets the user cfg variables required by policy + * manager + * + * Return: SUCCESS or FAILURE + * + */ +QDF_STATUS policy_mgr_set_user_cfg(struct wlan_objmgr_psoc *psoc, + struct policy_mgr_user_cfg *user_cfg); #endif /* __WLAN_POLICY_MGR_API_H */ diff --git a/umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_public_struct.h b/umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_public_struct.h index 9bd892f7d186..78a987d4484e 100644 --- a/umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_public_struct.h +++ b/umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_public_struct.h @@ -972,4 +972,11 @@ struct dual_mac_config { uint32_t req_fw_mode_config; }; +/** + * struct policy_mgr_user_cfg - Policy manager user config variables + * @enable_mcc_adaptive_scheduler: Enable MCC adaptive scheduler + */ +struct policy_mgr_user_cfg { + uint8_t enable_mcc_adaptive_scheduler; +}; #endif /* __WLAN_POLICY_MGR_PUBLIC_STRUCT_H */ diff --git a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c b/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c index 1b6c0b9b059e..cc78c181c4c8 100644 --- a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c +++ b/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c @@ -144,21 +144,6 @@ bool policy_mgr_is_dual_mac_disabled_in_ini( return wlan_objmgr_psoc_get_dual_mac_disable(psoc); } -/** - * policy_mgr_is_mas_enabled_in_user_cfg() - Check if MCC - * adaptive scheduler is enabled in INI - * @psoc: PSOC object information - * - * Checks if MCC adaptive scheduler is enabled in INI - * - * Return: true if MCC adaptive scheduler is enabled in INI - */ -bool policy_mgr_is_mas_enabled_in_user_cfg( - struct wlan_objmgr_psoc *psoc) -{ - return false; -} - uint32_t policy_mgr_mcc_to_scc_switch_mode_in_user_cfg( struct wlan_objmgr_psoc *psoc) { diff --git a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c b/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c index 992728ecb412..9bf37e9daa1f 100644 --- a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c +++ b/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c @@ -1224,6 +1224,27 @@ QDF_STATUS policy_mgr_get_channel_from_scan_result( return status; } +QDF_STATUS policy_mgr_set_user_cfg(struct wlan_objmgr_psoc *psoc, + struct policy_mgr_user_cfg *user_cfg) +{ + + struct policy_mgr_psoc_priv_obj *pm_ctx; + + pm_ctx = policy_mgr_get_context(psoc); + if (!pm_ctx) { + policy_mgr_err("Invalid context"); + return QDF_STATUS_E_FAILURE; + } + if (NULL == user_cfg) { + policy_mgr_err("Invalid User Config"); + return QDF_STATUS_E_FAILURE; + } + + pm_ctx->user_cfg = *user_cfg; + + return QDF_STATUS_SUCCESS; +} + uint8_t policy_mgr_search_and_check_for_session_conc( struct wlan_objmgr_psoc *psoc, uint8_t session_id, @@ -1366,9 +1387,20 @@ bool policy_mgr_is_mcc_adaptive_scheduler_enabled( return false; } - return pm_ctx->enable_mcc_adaptive_scheduler ? true : false; + return pm_ctx->user_cfg.enable_mcc_adaptive_scheduler ? + true : false; } +/** + * policy_mgr_change_mcc_go_beacon_interval() - Change MCC beacon interval + * @psoc: PSOC object information + * @vdev_id: vdev id + * @dev_mode: device mode + * + * Updates the beacon parameters of the GO in MCC scenario + * + * Return: Success or Failure depending on the overall function behavior + */ QDF_STATUS policy_mgr_change_mcc_go_beacon_interval( struct wlan_objmgr_psoc *psoc, uint8_t vdev_id, enum tQDF_ADAPTER_MODE dev_mode) diff --git a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h b/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h index 5f65da15d984..44f5b21d07cb 100644 --- a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h +++ b/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h @@ -257,7 +257,7 @@ struct policy_mgr_psoc_priv_obj { uint8_t conc_system_pref; struct dual_mac_config dual_mac_cfg; uint32_t hw_mode_change_in_progress; - uint8_t enable_mcc_adaptive_scheduler; + struct policy_mgr_user_cfg user_cfg; }; struct policy_mgr_psoc_priv_obj *policy_mgr_get_context( @@ -276,17 +276,6 @@ QDF_STATUS policy_mgr_get_updated_fw_mode_config( bool policy_mgr_is_dual_mac_disabled_in_ini( struct wlan_objmgr_psoc *psoc); -/** - * policy_mgr_is_mas_enabled_in_user_cfg() - Check if MCC - * adaptive scheduler is enabled in INI - * @psoc: PSOC object information - * - * Checks if MCC adaptive scheduler is enabled in INI - * - * Return: true if MCC adaptive scheduler is enabled in INI - */ -bool policy_mgr_is_mas_enabled_in_user_cfg( - struct wlan_objmgr_psoc *psoc); /** * policy_mgr_mcc_to_scc_switch_mode_in_user_cfg() - MCC to SCC * switch mode value in the user config