qcacld-3.0: Refactor WMA data commands to fix WIN compilation
Refactor WMA data commands to remove dependency of WMA header files
in common wmi layer.
Change-Id: I48978e51ca6bd4416420ee66746d5bfe7adae3c9
CRs-Fixed: 1008872
diff --git a/core/wma/src/wma_data.c b/core/wma/src/wma_data.c
index b49200c..ec39b53 100644
--- a/core/wma/src/wma_data.c
+++ b/core/wma/src/wma_data.c
@@ -2385,6 +2385,7 @@
uint8_t proto_type = 0;
#endif /* QCA_PKT_PROTO_TRACE */
struct wmi_mgmt_params mgmt_param = {0};
+ struct wmi_desc_t *wmi_desc = NULL;
ol_pdev_handle ctrl_pdev;
if (NULL == wma_handle) {
@@ -2715,21 +2716,25 @@
mgmt_param.tx_frame = tx_frame;
mgmt_param.frm_len = frmLen;
mgmt_param.vdev_id = vdev_id;
- mgmt_param.tx_complete_cb = tx_frm_download_comp_cb;
- mgmt_param.tx_ota_post_proc_cb = tx_frm_ota_comp_cb;
- mgmt_param.chanfreq = chanfreq;
mgmt_param.pdata = pData;
+ mgmt_param.chanfreq = chanfreq;
mgmt_param.qdf_ctx = cds_get_context(QDF_MODULE_ID_QDF_DEVICE);
- mgmt_param.wmi_desc = wmi_desc_get(wma_handle);
- if (NULL == mgmt_param.wmi_desc) {
- WMA_LOGE(FL("Failed to get wmi descriptor"));
+ wmi_desc = wmi_desc_get(wma_handle);
+ if (!wmi_desc) {
+ WMA_LOGE("%s: Failed to get wmi_desc", __func__);
status = QDF_STATUS_E_FAILURE;
} else {
+ mgmt_param.desc_id = wmi_desc->desc_id;
status = wmi_mgmt_unified_cmd_send(
- wma_handle->wmi_handle,
- &mgmt_param);
- if (status)
- wmi_desc_put(wma_handle, mgmt_param.wmi_desc);
+ wma_handle->wmi_handle,
+ &mgmt_param);
+ if (status) {
+ wmi_desc_put(wma_handle, wmi_desc);
+ } else {
+ wmi_desc->nbuf = tx_frame;
+ wmi_desc->tx_cmpl_cb = tx_frm_download_comp_cb;
+ wmi_desc->ota_post_proc_cb = tx_frm_ota_comp_cb;
+ }
}
} else {
/* Hand over the Tx Mgmt frame to TxRx */
diff --git a/core/wma/src/wma_mgmt.c b/core/wma/src/wma_mgmt.c
index 48ae5e9..f416f70 100644
--- a/core/wma/src/wma_mgmt.c
+++ b/core/wma/src/wma_mgmt.c
@@ -663,6 +663,12 @@
return;
}
+ if (timeperiod > WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD_STAMAX) {
+ WMI_LOGE("Invalid period %d Max limit %d", timeperiod,
+ WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD_STAMAX);
+ return;
+ }
+
params.vdev_id = vdev_id;
params.method = method;
params.timeperiod = timeperiod;