mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 16:46:15 -04:00
qcacld-3.0: Update dynamic config with user config
After the command to update the user params is sent to FW update the dynamic config with user config. Change-Id: I31ac19a86f68d9c2f8f4ce71f88eb12eb2d9b2f0 CRs-Fixed: 2347497
This commit is contained in:
parent
5836acff3e
commit
db87c0d648
1 changed files with 23 additions and 8 deletions
|
|
@ -5010,11 +5010,11 @@ sme_validate_user_nss_chain_params(
|
|||
|
||||
static QDF_STATUS
|
||||
sme_validate_nss_chains_config(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_mlme_nss_chains *user_cfg)
|
||||
struct wlan_mlme_nss_chains *user_cfg,
|
||||
struct wlan_mlme_nss_chains *dynamic_cfg)
|
||||
{
|
||||
enum nss_chains_band_info band;
|
||||
struct wlan_mlme_nss_chains *ini_cfg;
|
||||
struct wlan_mlme_nss_chains *dynamic_cfg;
|
||||
QDF_STATUS status;
|
||||
|
||||
ini_cfg = mlme_get_ini_vdev_config(vdev);
|
||||
|
|
@ -5022,11 +5022,6 @@ sme_validate_nss_chains_config(struct wlan_objmgr_vdev *vdev,
|
|||
sme_err("nss chain ini config NULL");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
dynamic_cfg = mlme_get_dynamic_vdev_config(vdev);
|
||||
if (!dynamic_cfg) {
|
||||
sme_err("nss chain dynamic config NULL");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
for (band = BAND_2GHZ; band < BAND_MAX; band++) {
|
||||
sme_populate_user_config(dynamic_cfg,
|
||||
|
|
@ -5056,6 +5051,7 @@ sme_nss_chains_update(mac_handle_t mac_handle,
|
|||
{
|
||||
struct sAniSirGlobal *mac_ctx = MAC_CONTEXT(mac_handle);
|
||||
QDF_STATUS status;
|
||||
struct wlan_mlme_nss_chains *dynamic_cfg;
|
||||
struct wlan_objmgr_vdev *vdev =
|
||||
wlan_objmgr_get_vdev_by_id_from_psoc(mac_ctx->psoc,
|
||||
vdev_id,
|
||||
|
|
@ -5064,13 +5060,29 @@ sme_nss_chains_update(mac_handle_t mac_handle,
|
|||
sme_err("Got NULL vdev obj, returning");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
status = sme_acquire_global_lock(&mac_ctx->sme);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
goto release_ref;
|
||||
|
||||
status = sme_validate_nss_chains_config(vdev, user_cfg);
|
||||
dynamic_cfg = mlme_get_dynamic_vdev_config(vdev);
|
||||
if (!dynamic_cfg) {
|
||||
sme_err("nss chain dynamic config NULL");
|
||||
status = QDF_STATUS_E_FAILURE;
|
||||
goto release_lock;
|
||||
}
|
||||
|
||||
status = sme_validate_nss_chains_config(vdev, user_cfg,
|
||||
dynamic_cfg);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
goto release_lock;
|
||||
|
||||
if (!qdf_mem_cmp(dynamic_cfg, user_cfg,
|
||||
sizeof(struct wlan_mlme_nss_chains))) {
|
||||
sme_debug("current config same as user config");
|
||||
status = QDF_STATUS_SUCCESS;
|
||||
goto release_lock;
|
||||
}
|
||||
sme_debug("User params verified, sending to fw vdev id %d", vdev_id);
|
||||
|
||||
status = wma_vdev_nss_chain_params_send(vdev->vdev_objmgr.vdev_id,
|
||||
|
|
@ -5080,6 +5092,9 @@ sme_nss_chains_update(mac_handle_t mac_handle,
|
|||
goto release_lock;
|
||||
}
|
||||
|
||||
qdf_mem_copy(dynamic_cfg, user_cfg,
|
||||
sizeof(struct wlan_mlme_nss_chains));
|
||||
|
||||
release_lock:
|
||||
sme_release_global_lock(&mac_ctx->sme);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue