diff options
| author | Padma, Santhosh Kumar <skpadma@qti.qualcomm.com> | 2014-03-08 18:49:36 +0530 |
|---|---|---|
| committer | Akash Patel <c_akashp@qca.qualcomm.com> | 2014-03-13 11:08:20 -0700 |
| commit | d1641f0eef2a539c8667828c5c762331bbfda9bf (patch) | |
| tree | bc5430e1b1e5a144ade281a31eeadcefce31792e | |
| parent | 6852d930581926db91ef490e77cde5ac83b4aa3d (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.c | 26 |
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; |
