summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPadma, Santhosh Kumar <skpadma@qti.qualcomm.com>2014-03-08 18:49:36 +0530
committerAkash Patel <c_akashp@qca.qualcomm.com>2014-03-13 11:08:20 -0700
commitd1641f0eef2a539c8667828c5c762331bbfda9bf (patch)
treebc5430e1b1e5a144ade281a31eeadcefce31792e
parent6852d930581926db91ef490e77cde5ac83b4aa3d (diff)
qcacld: wma: Fix to send WMI_VDEV_SET_WMM_PARAMS_CMDID
Currently we send WMI_PDEV_SET_WMM_PARAMS_CMDID command to update EDCA parameters on the target. But we need to send command WMI_VDEV_SET_WMM_PARAMS_CMDID to enable wmm-ac functionality in firmware. This fix modifies parameters accordingly and issues command WMI_VDEV_SET_WMM_PARAMS_CMDID to firmware. Change-Id: I53b809985b57a237a7546058ee40b5468b1ce681 CRs-Fixed: 630172
-rw-r--r--CORE/SERVICES/WMA/wma.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 63f727754654..36a23de418c7 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -9786,7 +9786,7 @@ out:
* Function to update per ac EDCA parameters
*/
static void wma_update_edca_params_for_ac(tSirMacEdcaParamRecord *edca_param,
- wmi_wmm_params *wmm_param,
+ wmi_wmm_vparams *wmm_param,
int ac)
{
wmm_param->cwmin = edca_param->cw.min;
@@ -9933,11 +9933,11 @@ static VOS_STATUS wma_process_update_edca_param_req(WMA_HANDLE handle,
tp_wma_handle wma_handle = (tp_wma_handle) handle;
u_int8_t *buf_ptr;
wmi_buf_t buf;
- wmi_pdev_set_wmm_params_cmd_fixed_param *cmd;
- wmi_wmm_params *wmm_param;
+ wmi_vdev_set_wmm_params_cmd_fixed_param *cmd;
+ wmi_wmm_vparams *wmm_param;
tSirMacEdcaParamRecord *edca_record;
int ac;
- int len = sizeof(*cmd) + (WME_NUM_AC * sizeof(wmi_wmm_params));
+ int len = sizeof(*cmd);
buf = wmi_buf_alloc(wma_handle->wmi_handle, len);
@@ -9947,20 +9947,18 @@ static VOS_STATUS wma_process_update_edca_param_req(WMA_HANDLE handle,
}
buf_ptr = (u_int8_t *) wmi_buf_data(buf);
- cmd = (wmi_pdev_set_wmm_params_cmd_fixed_param *) buf_ptr;
+ cmd = (wmi_vdev_set_wmm_params_cmd_fixed_param *) buf_ptr;
WMITLV_SET_HDR(&cmd->tlv_header,
- WMITLV_TAG_STRUC_wmi_pdev_set_wmm_params_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_vdev_set_wmm_params_cmd_fixed_param,
WMITLV_GET_STRUCT_TLVLEN(
- wmi_pdev_set_wmm_params_cmd_fixed_param));
- cmd->reserved0 = 0;
- buf_ptr += sizeof(wmi_pdev_set_wmm_params_cmd_fixed_param);
+ wmi_vdev_set_wmm_params_cmd_fixed_param));
+ cmd->vdev_id = edca_params->bssIdx;
for (ac = 0; ac < WME_NUM_AC; ac++) {
- wmm_param = (wmi_wmm_params *)
- (buf_ptr + ac * sizeof(wmi_wmm_params));
+ wmm_param = (wmi_wmm_vparams *)(&cmd->wmm_params[ac]);
WMITLV_SET_HDR(&wmm_param->tlv_header,
- WMITLV_TAG_STRUC_wmi_wmm_params,
- WMITLV_GET_STRUCT_TLVLEN(wmi_wmm_params));
+ WMITLV_TAG_STRUC_wmi_vdev_set_wmm_params_cmd_fixed_param,
+ WMITLV_GET_STRUCT_TLVLEN(wmi_wmm_vparams));
switch (ac) {
case WME_AC_BE:
edca_record = &edca_params->acbe;
@@ -9982,7 +9980,7 @@ static VOS_STATUS wma_process_update_edca_param_req(WMA_HANDLE handle,
}
if (wmi_unified_cmd_send(wma_handle->wmi_handle, buf, len,
- WMI_PDEV_SET_WMM_PARAMS_CMDID))
+ WMI_VDEV_SET_WMM_PARAMS_CMDID))
goto fail;
return VOS_STATUS_SUCCESS;