qcacld-3.0: Send vdev nss params to fw

Infra to send vdev nss chain user params to the fw.

Change-Id: I907ffe0906712b328e276527412530225c23b68e
CRs-Fixed: 2347499
This commit is contained in:
gaurank kathpalia 2018-10-24 22:05:15 +05:30 • committed by nshrivas
commit 748c7274d3
3 changed files with 48 additions and 2 deletions

View file

@ -31,6 +31,7 @@
#include "csr_internal.h"
#include "wma_types.h"
#include "wma_if.h"
#include "wma.h"
#include "wma_fips_api.h"
#include "qdf_trace.h"
#include "sme_trace.h"
@ -5063,11 +5064,26 @@ 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);
if (QDF_IS_STATUS_ERROR(status))
goto end;
goto release_lock;
sme_debug("User params verified, sending to fw vdev id %d", vdev_id);
end:
status = wma_vdev_nss_chain_params_send(vdev->vdev_objmgr.vdev_id,
user_cfg);
if (QDF_IS_STATUS_ERROR(status)) {
sme_err("params sent failed to fw vdev id %d", vdev_id);
goto release_lock;
}
release_lock:
sme_release_global_lock(&mac_ctx->sme);
release_ref:
wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_SME_ID);
return status;
}

View file

@ -1290,6 +1290,20 @@ typedef struct {
} t_wma_handle, *tp_wma_handle;
extern void cds_wma_complete_cback(void);
/**
* wma_vdev_nss_chain_params_send() - send vdev nss chain params to fw.
* @vdev_id: vdev_id
* @user_cfg: pointer to the params structure
*
* This function sends nss chain params to the fw
*
* Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_FAILURE on error
*/
QDF_STATUS
wma_vdev_nss_chain_params_send(uint8_t vdev_id,
struct wlan_mlme_nss_chains *user_cfg);
extern void wma_send_regdomain_info_to_fw(uint32_t reg_dmn, uint16_t regdmn2G,
uint16_t regdmn5G, uint8_t ctl2G,
uint8_t ctl5G);

View file

@ -1701,6 +1701,22 @@ static void wma_discard_fw_event(struct scheduler_msg *msg)
msg->type = 0;
}
QDF_STATUS
wma_vdev_nss_chain_params_send(uint8_t vdev_id,
struct wlan_mlme_nss_chains *user_cfg)
{
tp_wma_handle wma_handle = cds_get_context(QDF_MODULE_ID_WMA);
if (!wma_handle) {
WMA_LOGE("%s: wma_handle is NULL", __func__);
return QDF_STATUS_E_FAILURE;
}
return wmi_unified_vdev_nss_chain_params_send(wma_handle->wmi_handle,
vdev_id,
user_cfg);
}
/**
* wma_process_fw_event_handler() - common event handler to serialize
* event processing through mc_thread