Procházet zdrojové kódy

qcacmn: Add support to set the MU EDCA params to FW

Add support to set HE MU EDCA parameters to FW

Change-Id: I1aa641764248c0fd834d8790d2268887d3ab0903
CRs-Fixed: 2220230
Kiran Kumar Lokere před 7 roky
rodič
revize
ee5f26e356

+ 1 - 1
wmi/inc/wmi_unified_api.h

@@ -755,7 +755,7 @@ QDF_STATUS wmi_unified_vdev_set_gtx_cfg_cmd(void *wmi_hdl, uint32_t if_id,
 				  struct wmi_gtx_config *gtx_info);
 
 QDF_STATUS wmi_unified_process_update_edca_param(void *wmi_hdl,
-		     uint8_t vdev_id,
+		     uint8_t vdev_id, bool mu_edca_param,
 		     struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC]);
 
 QDF_STATUS wmi_unified_probe_rsp_tmpl_send_cmd(void *wmi_hdl,

+ 1 - 1
wmi/inc/wmi_unified_priv.h

@@ -850,7 +850,7 @@ QDF_STATUS (*send_wmm_update_cmd)(wmi_unified_t wmi_handle,
 		struct wmm_update_params *param);
 
 QDF_STATUS (*send_process_update_edca_param_cmd)(wmi_unified_t wmi_handle,
-		uint8_t vdev_id,
+		uint8_t vdev_id, bool mu_edca_param,
 		struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC]);
 
 QDF_STATUS (*send_set_ant_switch_tbl_cmd)(wmi_unified_t wmi_handle,

+ 3 - 2
wmi/src/wmi_unified_api.c

@@ -1457,6 +1457,7 @@ QDF_STATUS wmi_unified_vdev_set_gtx_cfg_cmd(void *wmi_hdl, uint32_t if_id,
  * wmi_unified_process_update_edca_param() - update EDCA params
  * @wmi_hdl: wmi handle
  * @vdev_id: vdev id.
+ * @mu_edca_param: mu_edca_param.
  * @wmm_vparams: edca parameters
  *
  * This function updates EDCA parameters to the target
@@ -1464,14 +1465,14 @@ QDF_STATUS wmi_unified_vdev_set_gtx_cfg_cmd(void *wmi_hdl, uint32_t if_id,
  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
  */
 QDF_STATUS wmi_unified_process_update_edca_param(void *wmi_hdl,
-				uint8_t vdev_id,
+				uint8_t vdev_id, bool mu_edca_param,
 				struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC])
 {
 	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
 
 	if (wmi_handle->ops->send_process_update_edca_param_cmd)
 		return wmi_handle->ops->send_process_update_edca_param_cmd(wmi_handle,
-					 vdev_id, wmm_vparams);
+					 vdev_id, mu_edca_param, wmm_vparams);
 
 	return QDF_STATUS_E_FAILURE;
 }

+ 6 - 2
wmi/src/wmi_unified_tlv.c

@@ -5173,7 +5173,7 @@ static QDF_STATUS send_vdev_set_gtx_cfg_cmd_tlv(wmi_unified_t wmi_handle, uint32
  * Return: CDF Status
  */
 static QDF_STATUS send_process_update_edca_param_cmd_tlv(wmi_unified_t wmi_handle,
-				    uint8_t vdev_id,
+				    uint8_t vdev_id, bool mu_edca_param,
 				    struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC])
 {
 	uint8_t *buf_ptr;
@@ -5198,6 +5198,7 @@ static QDF_STATUS send_process_update_edca_param_cmd_tlv(wmi_unified_t wmi_handl
 		       WMITLV_GET_STRUCT_TLVLEN
 			       (wmi_vdev_set_wmm_params_cmd_fixed_param));
 	cmd->vdev_id = vdev_id;
+	cmd->wmm_param_type = mu_edca_param;
 
 	for (ac = 0; ac < WMI_MAX_NUM_AC; ac++) {
 		wmm_param = (wmi_wmm_vparams *) (&cmd->wmm_params[ac]);
@@ -5208,7 +5209,10 @@ static QDF_STATUS send_process_update_edca_param_cmd_tlv(wmi_unified_t wmi_handl
 		wmm_param->cwmin = twmm_param->cwmin;
 		wmm_param->cwmax = twmm_param->cwmax;
 		wmm_param->aifs = twmm_param->aifs;
-		wmm_param->txoplimit = twmm_param->txoplimit;
+		if (mu_edca_param)
+			wmm_param->mu_edca_timer = twmm_param->mu_edca_timer;
+		else
+			wmm_param->txoplimit = twmm_param->txoplimit;
 		wmm_param->acm = twmm_param->acm;
 		wmm_param->no_ack = twmm_param->noackpolicy;
 	}