qcacld-3.0: Add check for OPM power save enabled
Qpower config should not be allowed if Qpower config/OPM power save config is disabled in ini file. Change-Id: Iff21159f30731f7188506ab5e5e3133d02203b6b CRs-Fixed: 2778632
This commit is contained in:
@@ -188,6 +188,7 @@ static void wlan_pmo_init_cfg(struct wlan_objmgr_psoc *psoc,
|
|||||||
psoc_cfg->sta_mod_dtim = cfg_get(psoc, CFG_PMO_ENABLE_MODULATED_DTIM);
|
psoc_cfg->sta_mod_dtim = cfg_get(psoc, CFG_PMO_ENABLE_MODULATED_DTIM);
|
||||||
psoc_cfg->enable_mc_list = cfg_get(psoc, CFG_PMO_MC_ADDR_LIST_ENABLE);
|
psoc_cfg->enable_mc_list = cfg_get(psoc, CFG_PMO_MC_ADDR_LIST_ENABLE);
|
||||||
psoc_cfg->power_save_mode = cfg_get(psoc, CFG_PMO_POWERSAVE_MODE);
|
psoc_cfg->power_save_mode = cfg_get(psoc, CFG_PMO_POWERSAVE_MODE);
|
||||||
|
psoc_cfg->default_power_save_mode = psoc_cfg->power_save_mode;
|
||||||
psoc_cfg->max_ps_poll = cfg_get(psoc, CFG_PMO_MAX_PS_POLL);
|
psoc_cfg->max_ps_poll = cfg_get(psoc, CFG_PMO_MAX_PS_POLL);
|
||||||
|
|
||||||
psoc_cfg->wow_enable = cfg_get(psoc, CFG_PMO_WOW_ENABLE);
|
psoc_cfg->wow_enable = cfg_get(psoc, CFG_PMO_WOW_ENABLE);
|
||||||
|
@@ -333,6 +333,7 @@ struct pmo_psoc_cfg {
|
|||||||
uint8_t sta_max_li_mod_dtim;
|
uint8_t sta_max_li_mod_dtim;
|
||||||
enum pmo_wow_enable_type wow_enable;
|
enum pmo_wow_enable_type wow_enable;
|
||||||
enum powersave_mode power_save_mode;
|
enum powersave_mode power_save_mode;
|
||||||
|
enum powersave_mode default_power_save_mode;
|
||||||
#ifdef FEATURE_RUNTIME_PM
|
#ifdef FEATURE_RUNTIME_PM
|
||||||
uint32_t runtime_pm_delay;
|
uint32_t runtime_pm_delay;
|
||||||
#endif
|
#endif
|
||||||
|
@@ -216,6 +216,16 @@ ucfg_pmo_is_mc_addr_list_enabled(struct wlan_objmgr_psoc *psoc);
|
|||||||
enum powersave_mode
|
enum powersave_mode
|
||||||
ucfg_pmo_get_power_save_mode(struct wlan_objmgr_psoc *psoc);
|
ucfg_pmo_get_power_save_mode(struct wlan_objmgr_psoc *psoc);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ucfg_pmo_get_default_power_save_mode() - Get default power save mode
|
||||||
|
* from ini config
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
*
|
||||||
|
* Return: power save mode
|
||||||
|
*/
|
||||||
|
enum powersave_mode
|
||||||
|
ucfg_pmo_get_default_power_save_mode(struct wlan_objmgr_psoc *psoc);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ucfg_pmo_set_power_save_mode() - Set power save mode
|
* ucfg_pmo_set_power_save_mode() - Set power save mode
|
||||||
* @psoc: pointer to psoc object
|
* @psoc: pointer to psoc object
|
||||||
@@ -1730,6 +1740,12 @@ ucfg_pmo_get_power_save_mode(struct wlan_objmgr_psoc *psoc)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline enum powersave_mode
|
||||||
|
ucfg_pmo_get_default_power_save_mode(struct wlan_objmgr_psoc *psoc)
|
||||||
|
{
|
||||||
|
return PMO_PS_ADVANCED_POWER_SAVE_DISABLE;
|
||||||
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
ucfg_pmo_set_power_save_mode(struct wlan_objmgr_psoc *psoc,
|
ucfg_pmo_set_power_save_mode(struct wlan_objmgr_psoc *psoc,
|
||||||
enum powersave_mode val)
|
enum powersave_mode val)
|
||||||
|
@@ -691,6 +691,14 @@ ucfg_pmo_get_power_save_mode(struct wlan_objmgr_psoc *psoc)
|
|||||||
return pmo_psoc_ctx->psoc_cfg.power_save_mode;
|
return pmo_psoc_ctx->psoc_cfg.power_save_mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum powersave_mode
|
||||||
|
ucfg_pmo_get_default_power_save_mode(struct wlan_objmgr_psoc *psoc)
|
||||||
|
{
|
||||||
|
struct pmo_psoc_priv_obj *pmo_psoc_ctx = pmo_psoc_get_priv(psoc);
|
||||||
|
|
||||||
|
return pmo_psoc_ctx->psoc_cfg.default_power_save_mode;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ucfg_pmo_set_power_save_mode(struct wlan_objmgr_psoc *psoc,
|
ucfg_pmo_set_power_save_mode(struct wlan_objmgr_psoc *psoc,
|
||||||
enum powersave_mode val)
|
enum powersave_mode val)
|
||||||
|
@@ -7755,6 +7755,11 @@ static int hdd_config_power(struct hdd_adapter *adapter,
|
|||||||
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
||||||
uint8_t power;
|
uint8_t power;
|
||||||
|
|
||||||
|
if (!ucfg_pmo_get_default_power_save_mode(hdd_ctx->psoc)) {
|
||||||
|
hdd_err_rl("OPM power save is disabled in ini");
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
power = nla_get_u8(attr);
|
power = nla_get_u8(attr);
|
||||||
|
|
||||||
return hdd_set_power_config(hdd_ctx, adapter, power);
|
return hdd_set_power_config(hdd_ctx, adapter, power);
|
||||||
|
Viittaa uudesa ongelmassa
Block a user