diff options
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 18 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 9 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.h | 2 |
3 files changed, 9 insertions, 20 deletions
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index 4e3e7d43df01..77d8ebc6c09f 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -9511,29 +9511,13 @@ static int hdd_set_qpower_config(hdd_context_t *hddctx, hdd_adapter_t *adapter, FL("invalid qpower value=%d"), qpower); return -EINVAL; } - vos_status = wma_set_powersave_config(qpower); + vos_status = wma_set_powersave_config(adapter->sessionId, qpower); if (vos_status != VOS_STATUS_SUCCESS) { hddLog(LOGE, FL("failed to update qpower %d"), vos_status); return -EINVAL; } - vos_status = wlan_hdd_set_powersave(adapter, - DRIVER_POWER_MODE_ACTIVE); - if (vos_status != VOS_STATUS_SUCCESS) { - hddLog(LOGE, - FL("failed to get full power %d"), - vos_status); - return -EINVAL; - } - vos_status = wlan_hdd_set_powersave(adapter, - DRIVER_POWER_MODE_AUTO); - if (vos_status != VOS_STATUS_SUCCESS) { - hddLog(LOGE, - FL("failed to put device in power save mode %d"), - vos_status); - return -EINVAL; - } return 0; } diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index df2ae90f9c3c..1b75f64264ff 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -31414,25 +31414,30 @@ VOS_STATUS wma_set_tx_rx_aggregation_size /** * wma_set_powersave_config() - update power save config in wma * @val: new power save value + * @vdev_id: vdev id * * This function update qpower value in wma layer * * Return: VOS_STATUS_SUCCESS on success, error number otherwise */ -VOS_STATUS wma_set_powersave_config(uint8_t val) +VOS_STATUS wma_set_powersave_config(uint8_t vdev_id, uint8_t val) { tp_wma_handle wma_handle; wma_handle = vos_get_context(VOS_MODULE_ID_WDA, vos_get_global_context(VOS_MODULE_ID_WDA, NULL)); + WMA_LOGI("configuring qpower: %d vdev %d", val, vdev_id); if (!wma_handle) { WMA_LOGE("%s: WMA context is invald!", __func__); return VOS_STATUS_E_INVAL; } wma_handle->powersave_mode = val; - return VOS_STATUS_SUCCESS; + return wmi_unified_set_sta_ps_param(wma_handle->wmi_handle, + vdev_id, + WMI_STA_PS_ENABLE_QPOWER, + wma_get_qpower_config(wma_handle)); } /** diff --git a/CORE/SERVICES/WMA/wma.h b/CORE/SERVICES/WMA/wma.h index ca5be1dc00c7..abf89f95e00e 100644 --- a/CORE/SERVICES/WMA/wma.h +++ b/CORE/SERVICES/WMA/wma.h @@ -1797,7 +1797,7 @@ uint32_t wma_get_vht_ch_width(void); VOS_STATUS wma_get_wakelock_stats(struct sir_wake_lock_stats *wake_lock_stats); VOS_STATUS wma_set_tx_rx_aggregation_size (struct sir_set_tx_rx_aggregation_size *tx_rx_aggregation_size); -VOS_STATUS wma_set_powersave_config(uint8_t val); +VOS_STATUS wma_set_powersave_config(uint8_t vdev_id, uint8_t val); /** * wma_find_vdev_by_id() - Find vdev handle for given vdev id. |
