diff options
| author | Kapil Gupta <kapgupta@codeaurora.org> | 2016-12-16 19:44:28 +0530 |
|---|---|---|
| committer | Ashish kumar goswami <agoswa@codeaurora.org> | 2016-12-19 18:44:08 +0530 |
| commit | ff7c3e66bca810ca898e523b67682bed2ad0f45b (patch) | |
| tree | 7b9296bd26b25e74ad18ba7c856f2bee4ed5a85e | |
| parent | 6e17e3b50844fa54333143f6c1cab254729e4b09 (diff) | |
qcacld-2.0: Update qpower configuration to FW
Currently during dynamic update of qpower value, only updation of
wma configuation of qpower is done. Updation of value to firmware
is done as part of request bmps.
Add changes to apply configuration directly to firmware.
Change-Id: Ic690935ca77bf3a8a1dad4c1cc4aeb22464f06cf
CRs-Fixed: 1102730
| -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. |
