From 06551ba5721b8213355149e975fc5d7f2b77c4ce Mon Sep 17 00:00:00 2001 From: Alan Chen Date: Wed, 1 Apr 2020 18:06:25 -0700 Subject: [PATCH] qcacld-3.0: Rename gEnablePowerSaveOffload to gAdvancedPowerSaveMode gEnablePowerSaveOffload is confusing, so change it to gAdvancedPowerSaveMode. Value 0: Disable advanced power save Value 1: Enable advanced power save Change-Id: Ib5593ef31eedacdc232ffbad183974e2cd847e83 CRs-Fixed: 2676664 --- .../pmo/core/inc/wlan_pmo_suspend_resume.h | 41 +------- components/pmo/core/src/wlan_pmo_main.c | 2 +- .../pmo/dispatcher/inc/wlan_pmo_common_cfg.h | 34 +++---- .../inc/wlan_pmo_common_public_struct.h | 66 +++---------- .../pmo/dispatcher/src/wlan_pmo_ucfg_api.c | 9 +- .../pmo/src/target_if_pmo_suspend_resume.c | 4 +- core/hdd/inc/wlan_hdd_cfg.h | 1 - core/hdd/inc/wlan_hdd_power.h | 9 +- core/hdd/src/wlan_hdd_cfg80211.c | 12 +-- core/hdd/src/wlan_hdd_main.c | 3 +- core/hdd/src/wlan_hdd_power.c | 29 +++--- core/mac/inc/sir_api.h | 12 --- core/wma/inc/wma_api.h | 6 +- core/wma/src/wma_power.c | 98 +++++++------------ 14 files changed, 96 insertions(+), 230 deletions(-) diff --git a/components/pmo/core/inc/wlan_pmo_suspend_resume.h b/components/pmo/core/inc/wlan_pmo_suspend_resume.h index 18289df20d94..33e2a7c48388 100644 --- a/components/pmo/core/inc/wlan_pmo_suspend_resume.h +++ b/components/pmo/core/inc/wlan_pmo_suspend_resume.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2018, 2020 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -216,45 +216,6 @@ pmo_core_psoc_get_power_save_mode(struct wlan_objmgr_psoc *psoc) return value; } -/** - * pmo_core_psoc_get_qpower_config() - get qpower configuration - * @psoc: objmgr psoc handle - * - * Power Save Offload configuration: - * 0 -> Power save offload is disabled - * 1 -> Legacy Power save enabled + Deep sleep Disabled - * 2 -> QPower enabled + Deep sleep Disabled - * 3 -> Legacy Power save enabled + Deep sleep Enabled - * 4 -> QPower enabled + Deep sleep Enabled - * 5 -> Duty cycling QPower enabled - * - * Return: enum powersave_qpower_mode with below values - * QPOWER_DISABLED if QPOWER is disabled - * QPOWER_ENABLED if QPOWER is enabled - * QPOWER_DUTY_CYCLING if DUTY CYCLING QPOWER is enabled - */ -static inline -enum pmo_power_save_qpower_mode pmo_core_psoc_get_qpower_config( - struct wlan_objmgr_psoc *psoc) -{ - uint8_t ps_mode = pmo_core_psoc_get_power_save_mode(psoc); - - switch (ps_mode) { - case pmo_ps_qpower_no_deep_sleep: - case pmo_ps_qpower_deep_sleep: - pmo_debug("QPOWER is enabled in power save mode %d", ps_mode); - return pmo_qpower_enabled; - case pmo_ps_duty_cycling_qpower: - pmo_debug("DUTY cycling QPOWER is enabled in power save mode %d", - ps_mode); - return pmo_qpower_duty_cycling; - default: - pmo_debug("QPOWER is disabled in power save mode %d", - ps_mode); - return pmo_qpower_disabled; - } -} - /** * pmo_core_vdev_get_pause_bitmap() - Get vdev pause bitmap * @psoc_ctx: psoc priv ctx diff --git a/components/pmo/core/src/wlan_pmo_main.c b/components/pmo/core/src/wlan_pmo_main.c index cae3a9260ffc..97609cef435d 100644 --- a/components/pmo/core/src/wlan_pmo_main.c +++ b/components/pmo/core/src/wlan_pmo_main.c @@ -183,7 +183,7 @@ static void wlan_pmo_init_cfg(struct wlan_objmgr_psoc *psoc, psoc_cfg->sta_dynamic_dtim = cfg_get(psoc, CFG_PMO_ENABLE_DYNAMIC_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->power_save_mode = cfg_get(psoc, CFG_PMO_POWERSAVE_OFFLOAD); + psoc_cfg->power_save_mode = cfg_get(psoc, CFG_PMO_POWERSAVE_MODE); psoc_cfg->max_ps_poll = cfg_get(psoc, CFG_PMO_MAX_PS_POLL); psoc_cfg->wow_enable = cfg_get(psoc, CFG_PMO_WOW_ENABLE); diff --git a/components/pmo/dispatcher/inc/wlan_pmo_common_cfg.h b/components/pmo/dispatcher/inc/wlan_pmo_common_cfg.h index 69e089b7f475..64fbf9838c26 100644 --- a/components/pmo/dispatcher/inc/wlan_pmo_common_cfg.h +++ b/components/pmo/dispatcher/inc/wlan_pmo_common_cfg.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2020 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -193,35 +193,31 @@ /* * - * gEnablePowerSaveOffload - Enable Power Save Offload + * gAdvancedPowerSaveMode - Advanced Power Save Mode * @Min: 0 - * @Max: 5 - * @Default: 2 + * @Max: 1 + * @Default: 1 * - * This ini is used to set Power Save Offload configuration: - * Current values of gEnablePowerSaveOffload: - * 0 -> Power save offload is disabled - * 1 -> Legacy Power save enabled + Deep sleep Disabled - * 2 -> QPower enabled + Deep sleep Disabled - * 3 -> Legacy Power save enabled + Deep sleep Enabled - * 4 -> QPower enabled + Deep sleep Enabled - * 5 -> Duty cycling QPower enabled + * This ini is used to set Advanced Power Save Mode configuration: + * Current values of gAdvancedPowerSaveMode: + * 0 -> Disable advanced power save + * 1 -> Enable advanced power save * * Related: None * - * Supported Feature: Power Save + * Supported Feature: Advanced Power Save * * Usage: External * * */ -#define CFG_PMO_POWERSAVE_OFFLOAD CFG_INI_UINT( \ - "gEnablePowerSaveOffload", \ +#define CFG_PMO_POWERSAVE_MODE CFG_INI_UINT( \ + "gAdvancedPowerSaveMode", \ 0, \ - 5, \ - 2, \ + 1, \ + 1, \ CFG_VALUE_OR_DEFAULT, \ - "Enable Power Save Offload") + "Advanced Power Save Mode") /* * @@ -429,7 +425,7 @@ CFG(CFG_PMO_ENABLE_DYNAMIC_DTIM) \ CFG(CFG_PMO_ENABLE_MODULATED_DTIM) \ CFG(CFG_PMO_MC_ADDR_LIST_ENABLE) \ - CFG(CFG_PMO_POWERSAVE_OFFLOAD) \ + CFG(CFG_PMO_POWERSAVE_MODE) \ CFG(CFG_PMO_MAX_PS_POLL) \ CFG(CFG_PMO_WOWLAN_DEAUTH_ENABLE) \ CFG(CFG_PMO_WOWLAN_DISASSOC_ENABLE) \ 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 7bcf941bd271..5537feb83493 100644 --- a/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h +++ b/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2020 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -85,11 +85,11 @@ enum pmo_beacon_dtim_policy { * @pmo_sta_ps_param_inactivity_time: TX/RX inactivity time in msec before going to sleep. * @pmo_sta_ps_param_uapsd: Set uapsd configuration. - * @pmo_sta_ps_param_qpower_pspoll_count: No of PS-Poll to send before - STA wakes up in QPower Mode. - * @pmo_sta_ps_enable_qpower: Enable QPower - * @pmo_sta_ps_param_qpower_max_tx_before_wake: Number of TX frames before the - entering the Active state + * @pmo_sta_ps_param_advanced_power_pspoll_count: No of PS-Poll to send before + STA wakes up in Advanced Power Save Mode. + * @pmo_sta_ps_enable_advanced_power: Enable Advanced Power Save + * @pmo_sta_ps_param_advanced_power_max_tx_before_wake: Number of TX frames + before the entering the Active state * @pmo_sta_ps_param_ito_repeat_count: Indicates ito repeated count */ enum pmo_sta_powersave_param { @@ -98,42 +98,12 @@ enum pmo_sta_powersave_param { pmo_sta_ps_param_pspoll_count = 2, pmo_sta_ps_param_inactivity_time = 3, pmo_sta_ps_param_uapsd = 4, - pmo_sta_ps_param_qpower_pspoll_count = 5, - pmo_sta_ps_enable_qpower = 6, - pmo_sta_ps_param_qpower_max_tx_before_wake = 7, + pmo_sta_ps_param_advanced_power_pspoll_count = 5, + pmo_sta_ps_enable_advanced_power = 6, + pmo_sta_ps_param_advanced_power_max_tx_before_wake = 7, pmo_sta_ps_param_ito_repeat_count = 8, }; -/** - * enum powersave_qpower_mode: QPOWER modes - * @pmo_qpower_disabled: Qpower is disabled - * @pmo_qpower_enabled: Qpower is enabled - * @pmo_qpower_duty_cycling: Qpower is enabled with duty cycling - */ -enum pmo_power_save_qpower_mode { - pmo_qpower_disabled = 0, - pmo_qpower_enabled = 1, - pmo_qpower_duty_cycling = 2 -}; - -/** - * enum powersave_qpower_mode: powersave_mode - * @pmo_ps_not_supported: Power save is not supported - * @pmo_ps_legacy_no_deep_sleep: Legacy pwr save enabled and deep sleep disabled - * @pmo_ps_qpower_no_deep_sleep: QPOWER enabled and deep sleep disabled - * @pmo_ps_legacy_deep_sleep: Legacy power save enabled and deep sleep enabled - * @pmo_ps_qpower_deep_sleep: QPOWER enabled and deep sleep enabled - * @pmo_ps_duty_cycling_qpower: QPOWER enabled in duty cycling mode - */ -enum pmo_powersave_mode { - pmo_ps_not_supported = 0, - pmo_ps_legacy_no_deep_sleep = 1, - pmo_ps_qpower_no_deep_sleep = 2, - pmo_ps_legacy_deep_sleep = 3, - pmo_ps_qpower_deep_sleep = 4, - pmo_ps_duty_cycling_qpower = 5 -}; - /** * enum wow_resume_trigger - resume trigger override setting values * @PMO_WOW_RESUME_TRIGGER_DEFAULT: fw to use platform default resume trigger @@ -183,21 +153,13 @@ enum pmo_wow_enable_type { }; /** - * enum powersave_qpower_mode: powersave_mode - * @PS_NOT_SUPPORTED: Power save is not supported - * @PS_LEGACY_NODEEPSLEEP: Legacy power save enabled and deep sleep disabled - * @PS_QPOWER_NODEEPSLEEP: QPOWER enabled and deep sleep disabled - * @PS_LEGACY_DEEPSLEEP: Legacy power save enabled and deep sleep enabled - * @PS_QPOWER_DEEPSLEEP: QPOWER enabled and deep sleep enabled - * @PS_DUTY_CYCLING_QPOWER: QPOWER enabled in duty cycling mode + * enum powersave_mode - powersave_mode + * @PMO_PS_ADVANCED_POWER_SAVE_DISABLE: Disable advanced power save mode + * @PMO_PS_ADVANCED_POWER_SAVE_ENABLE: Enable power save mode */ enum powersave_mode { - PS_NOT_SUPPORTED = 0, - PS_LEGACY_NODEEPSLEEP = 1, - PS_QPOWER_NODEEPSLEEP = 2, - PS_LEGACY_DEEPSLEEP = 3, - PS_QPOWER_DEEPSLEEP = 4, - PS_DUTY_CYCLING_QPOWER = 5 + PMO_PS_ADVANCED_POWER_SAVE_DISABLE = 0, + PMO_PS_ADVANCED_POWER_SAVE_ENABLE = 1 }; #define PMO_TARGET_SUSPEND_TIMEOUT 6000 diff --git a/components/pmo/dispatcher/src/wlan_pmo_ucfg_api.c b/components/pmo/dispatcher/src/wlan_pmo_ucfg_api.c index 617882c89775..770bb02ba1b1 100644 --- a/components/pmo/dispatcher/src/wlan_pmo_ucfg_api.c +++ b/components/pmo/dispatcher/src/wlan_pmo_ucfg_api.c @@ -713,20 +713,13 @@ ucfg_pmo_get_max_ps_poll(struct wlan_objmgr_psoc *psoc) uint8_t ucfg_pmo_power_save_offload_enabled(struct wlan_objmgr_psoc *psoc) { - uint8_t powersave_offload_enabled; + uint8_t powersave_offload_enabled = PMO_PS_ADVANCED_POWER_SAVE_ENABLE; struct pmo_psoc_priv_obj *pmo_psoc_ctx = pmo_psoc_get_priv(psoc); if (!pmo_psoc_ctx->psoc_cfg.max_ps_poll || !pmo_psoc_ctx->psoc_cfg.power_save_mode) powersave_offload_enabled = pmo_psoc_ctx->psoc_cfg.power_save_mode; - else if ((pmo_psoc_ctx->psoc_cfg.power_save_mode == - PS_QPOWER_NODEEPSLEEP) || - (pmo_psoc_ctx->psoc_cfg.power_save_mode == - PS_LEGACY_NODEEPSLEEP)) - powersave_offload_enabled = PS_LEGACY_NODEEPSLEEP; - else - powersave_offload_enabled = PS_LEGACY_DEEPSLEEP; pmo_debug("powersave offload enabled type:%d", powersave_offload_enabled); diff --git a/components/target_if/pmo/src/target_if_pmo_suspend_resume.c b/components/target_if/pmo/src/target_if_pmo_suspend_resume.c index 7ac48a9d85cb..a1fc8a76c7c3 100644 --- a/components/target_if/pmo/src/target_if_pmo_suspend_resume.c +++ b/components/target_if/pmo/src/target_if_pmo_suspend_resume.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2020 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -112,7 +112,7 @@ QDF_STATUS target_if_pmo_send_vdev_ps_param_req( * result resume right after suspend (WOW_ENABLE). */ switch (param_id) { - case pmo_sta_ps_enable_qpower: + case pmo_sta_ps_enable_advanced_power: param_id = WMI_STA_PS_ENABLE_QPOWER; break; case pmo_sta_ps_param_inactivity_time: diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h index 9288c980844f..9c87f8a0494d 100644 --- a/core/hdd/inc/wlan_hdd_cfg.h +++ b/core/hdd/inc/wlan_hdd_cfg.h @@ -323,7 +323,6 @@ bool hdd_dfs_indicate_radar(struct hdd_context *hdd_ctx); * gRuntimePM=0 * gWlanAutoShutdown = 0 * gEnableSuspend=0 - * gEnablePowerSaveOffload=0 * gEnableWoW=0 * * Return: None diff --git a/core/hdd/inc/wlan_hdd_power.h b/core/hdd/inc/wlan_hdd_power.h index 9511c7c4f2f4..a60935b73165 100644 --- a/core/hdd/inc/wlan_hdd_power.h +++ b/core/hdd/inc/wlan_hdd_power.h @@ -441,16 +441,15 @@ int wlan_hdd_ipv6_changed(struct notifier_block *nb, unsigned long data, void *arg); /** - * hdd_set_qpower_config() - set qpower config to firmware + * hdd_set_power_config() - set power config to firmware * @hddctx: HDD context * @adapter: HDD adapter - * @qpower: new qpower config value + * @power: new power config value * * Return: 0 on success; Errno on failure */ -int hdd_set_qpower_config(struct hdd_context *hddctx, - struct hdd_adapter *adapter, - uint8_t qpower); +int hdd_set_power_config(struct hdd_context *hddctx, + struct hdd_adapter *adapter, uint8_t power); #ifdef FEATURE_WLAN_DIAG_SUPPORT /** diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index 5447213b3b2c..278321b42c8a 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -7383,15 +7383,15 @@ static int hdd_config_scan_enable(struct hdd_adapter *adapter, return 0; } -static int hdd_config_qpower(struct hdd_adapter *adapter, - const struct nlattr *attr) +static int hdd_config_power(struct hdd_adapter *adapter, + const struct nlattr *attr) { struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter); - uint8_t qpower; + uint8_t power; - qpower = nla_get_u8(attr); + power = nla_get_u8(attr); - return hdd_set_qpower_config(hdd_ctx, adapter, qpower); + return hdd_set_power_config(hdd_ctx, adapter, power); } static int hdd_config_stats_avg_factor(struct hdd_adapter *adapter, @@ -7999,7 +7999,7 @@ static const struct independent_setters independent_setters[] = { {QCA_WLAN_VENDOR_ATTR_CONFIG_SCAN_ENABLE, hdd_config_scan_enable}, {QCA_WLAN_VENDOR_ATTR_CONFIG_QPOWER, - hdd_config_qpower}, + hdd_config_power}, {QCA_WLAN_VENDOR_ATTR_CONFIG_STATS_AVG_FACTOR, hdd_config_stats_avg_factor}, {QCA_WLAN_VENDOR_ATTR_CONFIG_GUARD_TIME, diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 291f4165145e..f78b48714be6 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -2554,7 +2554,8 @@ static void hdd_mon_mode_ether_setup(struct net_device *dev) */ static void hdd_mon_turn_off_ps_and_wow(struct hdd_context *hdd_ctx) { - ucfg_pmo_set_power_save_mode(hdd_ctx->psoc, PS_NOT_SUPPORTED); + ucfg_pmo_set_power_save_mode(hdd_ctx->psoc, + PMO_PS_ADVANCED_POWER_SAVE_DISABLE); ucfg_pmo_set_wow_enable(hdd_ctx->psoc, PMO_WOW_DISABLE_BOTH); } diff --git a/core/hdd/src/wlan_hdd_power.c b/core/hdd/src/wlan_hdd_power.c index 7933743669a1..6c20e895c21a 100644 --- a/core/hdd/src/wlan_hdd_power.c +++ b/core/hdd/src/wlan_hdd_power.c @@ -2510,40 +2510,37 @@ int wlan_hdd_cfg80211_get_txpower(struct wiphy *wiphy, return errno; } -int hdd_set_qpower_config(struct hdd_context *hddctx, - struct hdd_adapter *adapter, - u8 qpower) +int hdd_set_power_config(struct hdd_context *hddctx, + struct hdd_adapter *adapter, + uint8_t power) { QDF_STATUS status; if (!ucfg_pmo_get_power_save_mode(hddctx->psoc)) { - hdd_err("qpower is disabled in configuration"); + hdd_err("power save is disabled in configuration"); return -EINVAL; } if (adapter->device_mode != QDF_STA_MODE && adapter->device_mode != QDF_P2P_CLIENT_MODE) { - hdd_info("QPOWER only allowed in STA/P2P-Client modes:%d", + hdd_info("Advanced power save only allowed in STA/P2P-Client modes:%d", adapter->device_mode); return -EINVAL; } - if (qpower > PS_DUTY_CYCLING_QPOWER || - qpower < PS_LEGACY_NODEEPSLEEP) { - hdd_err("invalid qpower value: %d", qpower); + if (power > PMO_PS_ADVANCED_POWER_SAVE_ENABLE || + power < PMO_PS_ADVANCED_POWER_SAVE_DISABLE) { + hdd_err("invalid power value: %d", power); return -EINVAL; } if (ucfg_pmo_get_max_ps_poll(hddctx->psoc)) { - if ((qpower == PS_QPOWER_NODEEPSLEEP) || - (qpower == PS_LEGACY_NODEEPSLEEP)) - qpower = PS_LEGACY_NODEEPSLEEP; - else - qpower = PS_LEGACY_DEEPSLEEP; - hdd_info("Qpower disabled, %d", qpower); + hdd_info("Disable advanced power save since max ps poll is enabled"); + power = PMO_PS_ADVANCED_POWER_SAVE_DISABLE; } - status = wma_set_qpower_config(adapter->vdev_id, qpower); + + status = wma_set_power_config(adapter->vdev_id, power); if (status != QDF_STATUS_SUCCESS) { - hdd_err("failed to configure qpower: %d", status); + hdd_err("failed to configure power: %d", status); return -EINVAL; } diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index db8357642216..f7a515211cdd 100644 --- a/core/mac/inc/sir_api.h +++ b/core/mac/inc/sir_api.h @@ -4431,18 +4431,6 @@ struct sir_qos_params { uint8_t cwmax; }; -/** - * enum powersave_qpower_mode: QPOWER modes - * @QPOWER_DISABLED: Qpower is disabled - * @QPOWER_ENABLED: Qpower is enabled - * @QPOWER_DUTY_CYCLING: Qpower is enabled with duty cycling - */ -enum powersave_qpower_mode { - QPOWER_DISABLED = 0, - QPOWER_ENABLED = 1, - QPOWER_DUTY_CYCLING = 2 -}; - /** * struct sir_sme_ext_change_chan_req - channel change request * @message_type: message id diff --git a/core/wma/inc/wma_api.h b/core/wma/inc/wma_api.h index 463cac83ba2a..f6cdf1d6a79d 100644 --- a/core/wma/inc/wma_api.h +++ b/core/wma/inc/wma_api.h @@ -426,13 +426,13 @@ QDF_STATUS wma_send_coex_config_cmd(WMA_HANDLE wma_handle, QDF_STATUS wma_send_ocl_cmd(WMA_HANDLE wma_handle, struct ocl_cmd_params *ocl_params); /** - * wma_set_qpower_config() - update qpower config in wma + * wma_set_power_config() - update power config in wma * @vdev_id: the Id of the vdev to configure - * @qpower: new qpower value + * @power: new power value * * Return: QDF_STATUS_SUCCESS on success, error number otherwise */ -QDF_STATUS wma_set_qpower_config(uint8_t vdev_id, uint8_t qpower); +QDF_STATUS wma_set_power_config(uint8_t vdev_id, enum powersave_mode power); #ifdef FEATURE_WLAN_D0WOW static inline bool wma_d0_wow_is_supported(void) diff --git a/core/wma/src/wma_power.c b/core/wma/src/wma_power.c index 5b914e0e46e9..d39b9ec729e0 100644 --- a/core/wma/src/wma_power.c +++ b/core/wma/src/wma_power.c @@ -558,14 +558,14 @@ static inline uint32_t wma_get_uapsd_mask(tpUapsd_Params uapsd_params) * @wma: wma handle * @vdev_id: vdev id * @enable: enable/disable - * @qpower_config: qpower configuration + * @power_config: power configuration * * Return: QDF_STATUS_SUCCESS for success or error code */ static QDF_STATUS wma_set_force_sleep(tp_wma_handle wma, uint32_t vdev_id, uint8_t enable, - enum powersave_qpower_mode qpower_config, + enum powersave_mode power_config, bool enable_ps) { QDF_STATUS ret; @@ -616,21 +616,21 @@ static QDF_STATUS wma_set_force_sleep(tp_wma_handle wma, } /* - * QPower is enabled by default in Firmware - * So Disable QPower explicitly + * Advanced power save is enabled by default in Firmware + * So Disable advanced power save explicitly */ ret = wma_unified_set_sta_ps_param(wma->wmi_handle, vdev_id, WMI_STA_PS_ENABLE_QPOWER, - qpower_config); + power_config); if (QDF_IS_STATUS_ERROR(ret)) { - WMA_LOGE("%s(%d) QPower Failed vdevId %d", - qpower_config ? "Enable" : "Disable", - qpower_config, vdev_id); + WMA_LOGE("%s(%d) Power Failed vdevId %d", + power_config ? "Enable" : "Disable", + power_config, vdev_id); return ret; } - WMA_LOGD("QPower %s(%d) vdevId %d", - qpower_config ? "Enabled" : "Disabled", - qpower_config, vdev_id); + WMA_LOGD("Power %s(%d) vdevId %d", + power_config ? "Enabled" : "Disabled", + power_config, vdev_id); /* Set the Wake Policy to WMI_STA_PS_RX_WAKE_POLICY_POLL_UAPSD */ ret = wma_unified_set_sta_ps_param(wma->wmi_handle, vdev_id, @@ -708,48 +708,18 @@ static QDF_STATUS wma_set_force_sleep(tp_wma_handle wma, return QDF_STATUS_SUCCESS; } -/** - * wma_get_qpower_config() - get qpower configuration - * @wma: WMA handle - * - * Power Save Offload configuration: - * 0 -> Power save offload is disabled - * 1 -> Legacy Power save enabled + Deep sleep Disabled - * 2 -> QPower enabled + Deep sleep Disabled - * 3 -> Legacy Power save enabled + Deep sleep Enabled - * 4 -> QPower enabled + Deep sleep Enabled - * 5 -> Duty cycling QPower enabled - * - * Return: enum powersave_qpower_mode with below values - * QPOWER_DISABLED if QPOWER is disabled - * QPOWER_ENABLED if QPOWER is enabled - * QPOWER_DUTY_CYCLING if DUTY CYCLING QPOWER is enabled - */ -static enum powersave_qpower_mode wma_get_qpower_config(tp_wma_handle wma) +static uint8_t wma_get_power_config(tp_wma_handle wma) { - switch (wma->powersave_mode) { - case PS_QPOWER_NODEEPSLEEP: - case PS_QPOWER_DEEPSLEEP: - WMA_LOGD("QPOWER is enabled in power save mode %d", - wma->powersave_mode); - return QPOWER_ENABLED; - case PS_DUTY_CYCLING_QPOWER: - WMA_LOGD("DUTY cycling QPOWER is enabled in power save mode %d", - wma->powersave_mode); - return QPOWER_DUTY_CYCLING; + WMA_LOGD("POWER mode is %d", wma->powersave_mode); - default: - WMA_LOGD("QPOWER is disabled in power save mode %d", - wma->powersave_mode); - return QPOWER_DISABLED; - } + return wma->powersave_mode; } void wma_enable_sta_ps_mode(tpEnablePsParams ps_req) { uint32_t vdev_id = ps_req->sessionid; QDF_STATUS ret; - enum powersave_qpower_mode qpower_config; + enum powersave_mode power_config; struct wma_txrx_node *iface; t_wma_handle *wma_handle; @@ -766,11 +736,11 @@ void wma_enable_sta_ps_mode(tpEnablePsParams ps_req) return; } - qpower_config = wma_get_qpower_config(wma_handle); + power_config = wma_get_power_config(wma_handle); if (eSIR_ADDON_NOTHING == ps_req->psSetting) { - if (qpower_config && iface->uapsd_cached_val) { - qpower_config = 0; - WMA_LOGD("Qpower is disabled"); + if (power_config && iface->uapsd_cached_val) { + power_config = 0; + WMA_LOGD("Advanced power save is disabled"); } WMA_LOGD("Enable Sta Mode Ps vdevId %d", vdev_id); ret = wma_unified_set_sta_ps_param(wma_handle->wmi_handle, @@ -782,7 +752,7 @@ void wma_enable_sta_ps_mode(tpEnablePsParams ps_req) } ret = wma_set_force_sleep(wma_handle, vdev_id, false, - qpower_config, true); + power_config, true); if (QDF_IS_STATUS_ERROR(ret)) { WMA_LOGE("Enable Sta Ps Failed vdevId %d", vdev_id); return; @@ -811,13 +781,13 @@ void wma_enable_sta_ps_mode(tpEnablePsParams ps_req) vdev_id, uapsd_val); } - if (qpower_config && iface->uapsd_cached_val) { - qpower_config = 0; + if (power_config && iface->uapsd_cached_val) { + power_config = 0; WMA_LOGD("Qpower is disabled"); } WMA_LOGD("Enable Forced Sleep vdevId %d", vdev_id); ret = wma_set_force_sleep(wma_handle, vdev_id, true, - qpower_config, true); + power_config, true); if (QDF_IS_STATUS_ERROR(ret)) { WMA_LOGE("Enable Forced Sleep Failed vdevId %d", @@ -894,7 +864,7 @@ void wma_disable_sta_ps_mode(tpDisablePsParams ps_req) } } -QDF_STATUS wma_set_qpower_config(uint8_t vdev_id, uint8_t qpower) +QDF_STATUS wma_set_power_config(uint8_t vdev_id, enum powersave_mode power) { tp_wma_handle wma = cds_get_context(QDF_MODULE_ID_WMA); @@ -903,12 +873,12 @@ QDF_STATUS wma_set_qpower_config(uint8_t vdev_id, uint8_t qpower) return QDF_STATUS_E_INVAL; } - WMA_LOGI("configuring qpower: %d", qpower); - wma->powersave_mode = qpower; + WMA_LOGI("configuring power: %d", power); + wma->powersave_mode = power; return wma_unified_set_sta_ps_param(wma->wmi_handle, vdev_id, WMI_STA_PS_ENABLE_QPOWER, - wma_get_qpower_config(wma)); + wma_get_power_config(wma)); } void wma_enable_uapsd_mode(tp_wma_handle wma, tpEnableUapsdParams ps_req) @@ -916,7 +886,7 @@ void wma_enable_uapsd_mode(tp_wma_handle wma, tpEnableUapsdParams ps_req) QDF_STATUS ret; uint32_t vdev_id = ps_req->sessionid; uint32_t uapsd_val = 0; - enum powersave_qpower_mode qpower_config = wma_get_qpower_config(wma); + enum powersave_mode power_config = wma_get_power_config(wma); struct wma_txrx_node *iface = &wma->interfaces[vdev_id]; if (!iface->vdev) { @@ -941,14 +911,14 @@ void wma_enable_uapsd_mode(tp_wma_handle wma, tpEnableUapsdParams ps_req) return; } - if (qpower_config && uapsd_val) { - qpower_config = 0; - WMA_LOGD("Disable Qpower %d", vdev_id); + if (power_config && uapsd_val) { + power_config = 0; + WMA_LOGD("Disable power %d", vdev_id); } iface->uapsd_cached_val = uapsd_val; WMA_LOGD("Enable Forced Sleep vdevId %d", vdev_id); ret = wma_set_force_sleep(wma, vdev_id, true, - qpower_config, ps_req->uapsdParams.enable_ps); + power_config, ps_req->uapsdParams.enable_ps); if (QDF_IS_STATUS_ERROR(ret)) { WMA_LOGE("Enable Forced Sleep Failed vdevId %d", vdev_id); return; @@ -968,7 +938,7 @@ void wma_disable_uapsd_mode(tp_wma_handle wma, { QDF_STATUS ret; uint32_t vdev_id = ps_req->sessionid; - enum powersave_qpower_mode qpower_config = wma_get_qpower_config(wma); + enum powersave_mode power_config = wma_get_power_config(wma); WMA_LOGD("Disable Uapsd vdevId %d", vdev_id); @@ -988,7 +958,7 @@ void wma_disable_uapsd_mode(tp_wma_handle wma, /* Re enable Sta Mode Powersave with proper configuration */ ret = wma_set_force_sleep(wma, vdev_id, false, - qpower_config, true); + power_config, true); if (QDF_IS_STATUS_ERROR(ret)) { WMA_LOGE("Disable Forced Sleep Failed vdevId %d", vdev_id); return;