mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-23 21:19:04 -04:00
qcacmn: Refactor the code to update the conc_system_pref
Refactor the code to dynamically change the conc_system_pref. Whenever user changes conc_system_pref from application, driver is overwriting the conc_system_pref which is getting populated from ini file. Once it is overwritten there is no way to get the configured value for this setting. So add a new variable to hold the value of conc_system_pref without disturbing default value read from ini file. CRs-Fixed: 2082073 Change-Id: Icfb245c7a8872885332ec222780c911d08521d46
This commit is contained in:
parent
727c4b3880
commit
c2cce632c8
4 changed files with 59 additions and 6 deletions
|
|
@ -2085,4 +2085,24 @@ void policy_mgr_init_sap_mandatory_2g_chan(struct wlan_objmgr_psoc *psoc);
|
|||
*/
|
||||
void policy_mgr_remove_sap_mandatory_chan(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t chan);
|
||||
/*
|
||||
* policy_set_cur_conc_system_pref - set current conc_system_pref
|
||||
* @psoc: soc pointer
|
||||
*
|
||||
* Set the current concurrency system preference.
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void policy_mgr_set_cur_conc_system_pref(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t conc_system_pref);
|
||||
/**
|
||||
* policy_mgr_get_cur_conc_system_pref - Get current conc_system_pref
|
||||
* @psoc: soc pointer
|
||||
*
|
||||
* Get the current concurrent system preference.
|
||||
*
|
||||
* Return: conc_system_pref
|
||||
*/
|
||||
uint8_t policy_mgr_get_cur_conc_system_pref(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
#endif /* __WLAN_POLICY_MGR_API_H */
|
||||
|
|
|
|||
|
|
@ -1768,6 +1768,8 @@ QDF_STATUS policy_mgr_set_user_cfg(struct wlan_objmgr_psoc *psoc,
|
|||
|
||||
pm_ctx->user_cfg = *user_cfg;
|
||||
|
||||
pm_ctx->cur_conc_system_pref = pm_ctx->user_cfg.conc_system_pref;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
@ -2588,6 +2590,36 @@ bool policy_mgr_is_scan_simultaneous_capable(struct wlan_objmgr_psoc *psoc)
|
|||
return false;
|
||||
}
|
||||
|
||||
void policy_mgr_set_cur_conc_system_pref(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t conc_system_pref)
|
||||
{
|
||||
struct policy_mgr_psoc_priv_obj *pm_ctx;
|
||||
|
||||
pm_ctx = policy_mgr_get_context(psoc);
|
||||
|
||||
if (!pm_ctx) {
|
||||
policy_mgr_err("Invalid Context");
|
||||
return;
|
||||
}
|
||||
|
||||
policy_mgr_debug("conc_system_pref %hu", conc_system_pref);
|
||||
pm_ctx->cur_conc_system_pref = conc_system_pref;
|
||||
}
|
||||
|
||||
uint8_t policy_mgr_get_cur_conc_system_pref(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
struct policy_mgr_psoc_priv_obj *pm_ctx;
|
||||
|
||||
pm_ctx = policy_mgr_get_context(psoc);
|
||||
if (!pm_ctx) {
|
||||
policy_mgr_err("Invalid Context");
|
||||
return PM_THROUGHPUT;
|
||||
}
|
||||
|
||||
policy_mgr_debug("conc_system_pref %hu", pm_ctx->cur_conc_system_pref);
|
||||
return pm_ctx->cur_conc_system_pref;
|
||||
}
|
||||
|
||||
QDF_STATUS policy_mgr_get_updated_scan_and_fw_mode_config(
|
||||
struct wlan_objmgr_psoc *psoc, uint32_t *scan_config,
|
||||
uint32_t *fw_mode_config, uint32_t dual_mac_disable_ini)
|
||||
|
|
|
|||
|
|
@ -269,6 +269,7 @@ struct policy_mgr_psoc_priv_obj {
|
|||
uint16_t unsafe_channel_list[QDF_MAX_NUM_CHAN];
|
||||
uint16_t unsafe_channel_count;
|
||||
struct sta_ap_intf_check_work_ctx *sta_ap_intf_check_work_info;
|
||||
uint8_t cur_conc_system_pref;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -489,9 +489,9 @@ QDF_STATUS policy_mgr_get_pcl(struct wlan_objmgr_psoc *psoc,
|
|||
/* find the current connection state from pm_conc_connection_list*/
|
||||
num_connections = policy_mgr_get_connection_count(psoc);
|
||||
policy_mgr_debug("connections:%d pref:%d requested mode:%d",
|
||||
num_connections, pm_ctx->user_cfg.conc_system_pref, mode);
|
||||
num_connections, pm_ctx->cur_conc_system_pref, mode);
|
||||
|
||||
switch (pm_ctx->user_cfg.conc_system_pref) {
|
||||
switch (pm_ctx->cur_conc_system_pref) {
|
||||
case 0:
|
||||
conc_system_pref = PM_THROUGHPUT;
|
||||
break;
|
||||
|
|
@ -502,8 +502,8 @@ QDF_STATUS policy_mgr_get_pcl(struct wlan_objmgr_psoc *psoc,
|
|||
conc_system_pref = PM_LATENCY;
|
||||
break;
|
||||
default:
|
||||
policy_mgr_err("unknown conc_system_pref value %d",
|
||||
pm_ctx->user_cfg.conc_system_pref);
|
||||
policy_mgr_err("unknown cur_conc_system_pref value %d",
|
||||
pm_ctx->cur_conc_system_pref);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -596,10 +596,10 @@ enum policy_mgr_conc_priority_mode
|
|||
return PM_THROUGHPUT;
|
||||
}
|
||||
|
||||
if (pm_ctx->user_cfg.conc_system_pref >= PM_MAX_CONC_PRIORITY_MODE)
|
||||
if (pm_ctx->cur_conc_system_pref >= PM_MAX_CONC_PRIORITY_MODE)
|
||||
return PM_THROUGHPUT;
|
||||
|
||||
return pm_ctx->user_cfg.conc_system_pref;
|
||||
return pm_ctx->cur_conc_system_pref;
|
||||
}
|
||||
|
||||
enum policy_mgr_one_connection_mode
|
||||
|
|
|
|||
Loading…
Reference in a new issue