Browse Source

qcacmn: Update WMM params per VAP for lithium onwards

Update WMM params per VAP for lithium onwards

Change-Id: I025d8f314b255f4fa2da5c83916a122733b36c27
CRs-Fixed: 2064780
Vikram Kandukuri 7 years ago
parent
commit
6915956d4c

+ 1 - 4
wmi/inc/wmi_unified_api.h

@@ -571,12 +571,9 @@ QDF_STATUS wmi_unified_set_sta_keep_alive_cmd(void *wmi_hdl,
 QDF_STATUS wmi_unified_vdev_set_gtx_cfg_cmd(void *wmi_hdl, uint32_t if_id,
 				  struct wmi_gtx_config *gtx_info);
 
-#ifdef CONFIG_MCL
 QDF_STATUS wmi_unified_process_update_edca_param(void *wmi_hdl,
 		     uint8_t vdev_id,
-		     wmi_wmm_vparams gwmm_param[WMI_MAX_NUM_AC]);
-#endif
-
+		     struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC]);
 
 QDF_STATUS wmi_unified_probe_rsp_tmpl_send_cmd(void *wmi_hdl,
 		   uint8_t vdev_id,

+ 21 - 0
wmi/inc/wmi_unified_param.h

@@ -4047,6 +4047,27 @@ struct wmm_update_params {
 	struct wmi_host_wmeParams *wmep_array;
 };
 
+/**
+ * struct wmi_host_wmevParams - WME params
+ * @wmep_acm: ACM paramete
+ * @wmep_aifsn:	AIFSN parameters
+ * @wmep_logcwmin: cwmin in exponential form
+ * @wmep_logcwmax: cwmax in exponential form
+ * @wmep_txopLimit: txopLimit
+ * @wmep_noackPolicy: No-Ack Policy: 0=ack, 1=no-ack
+ */
+struct wmi_host_wme_vparams {
+	u_int32_t	acm;
+	u_int32_t	aifs;
+	u_int32_t	cwmin;
+	u_int32_t	cwmax;
+	union {
+		u_int32_t txoplimit;
+		u_int32_t mu_edca_timer;
+	};
+	u_int32_t	noackpolicy;
+};
+
 /**
  * struct ant_switch_tbl_params - Antenna switch table params
  * @ant_ctrl_common1: ANtenna control common param 1

+ 4 - 4
wmi/inc/wmi_unified_priv.h

@@ -576,10 +576,6 @@ QDF_STATUS (*send_get_link_speed_cmd)(wmi_unified_t wmi_handle,
 QDF_STATUS (*send_egap_conf_params_cmd)(wmi_unified_t wmi_handle,
 				     wmi_ap_ps_egap_param_cmd_fixed_param *egap_params);
 
-QDF_STATUS (*send_process_update_edca_param_cmd)(wmi_unified_t wmi_handle,
-			     uint8_t vdev_id,
-			     wmi_wmm_vparams gwmm_param[WMI_MAX_NUM_AC]);
-
 QDF_STATUS (*send_bcn_buf_ll_cmd)(wmi_unified_t wmi_handle,
 			wmi_bcn_send_from_host_cmd_fixed_param * param);
 
@@ -793,6 +789,10 @@ QDF_STATUS (*send_set_vht_ie_cmd)(wmi_unified_t wmi_handle,
 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,
+		struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC]);
+
 QDF_STATUS (*send_set_ant_switch_tbl_cmd)(wmi_unified_t wmi_handle,
 		struct ant_switch_tbl_params *param);
 

+ 4 - 5
wmi/src/wmi_unified_api.c

@@ -1420,26 +1420,25 @@ 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
- * @edca_params: edca parameters
+ * @vdev_id: vdev id.
+ * @wmm_vparams: edca parameters
  *
  * This function updates EDCA parameters to the target
  *
  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
  */
-#ifdef CONFIG_MCL
 QDF_STATUS wmi_unified_process_update_edca_param(void *wmi_hdl,
 				uint8_t vdev_id,
-				wmi_wmm_vparams gwmm_param[WMI_MAX_NUM_AC])
+				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, gwmm_param);
+					 vdev_id, wmm_vparams);
 
 	return QDF_STATUS_E_FAILURE;
 }
-#endif
 
 /**
  * wmi_unified_probe_rsp_tmpl_send_cmd() - send probe response template to fw

+ 9 - 7
wmi/src/wmi_unified_tlv.c

@@ -4699,7 +4699,8 @@ static QDF_STATUS send_vdev_set_gtx_cfg_cmd_tlv(wmi_unified_t wmi_handle, uint32
 /**
  * send_process_update_edca_param_cmd_tlv() - update EDCA params
  * @wmi_handle: wmi handle
- * @edca_params: edca parameters
+ * @vdev_id: vdev id.
+ * @wmm_vparams: edca parameters
  *
  * This function updates EDCA parameters to the target
  *
@@ -4707,12 +4708,13 @@ static QDF_STATUS send_vdev_set_gtx_cfg_cmd_tlv(wmi_unified_t wmi_handle, uint32
  */
 static QDF_STATUS send_process_update_edca_param_cmd_tlv(wmi_unified_t wmi_handle,
 				    uint8_t vdev_id,
-				    wmi_wmm_vparams gwmm_param[WMI_MAX_NUM_AC])
+				    struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC])
 {
 	uint8_t *buf_ptr;
 	wmi_buf_t buf;
 	wmi_vdev_set_wmm_params_cmd_fixed_param *cmd;
-	wmi_wmm_vparams *wmm_param, *twmm_param;
+	wmi_wmm_vparams *wmm_param;
+	struct wmi_host_wme_vparams *twmm_param;
 	int len = sizeof(*cmd);
 	int ac;
 
@@ -4733,7 +4735,7 @@ static QDF_STATUS send_process_update_edca_param_cmd_tlv(wmi_unified_t wmi_handl
 
 	for (ac = 0; ac < WMI_MAX_NUM_AC; ac++) {
 		wmm_param = (wmi_wmm_vparams *) (&cmd->wmm_params[ac]);
-		twmm_param = (wmi_wmm_vparams *) (&gwmm_param[ac]);
+		twmm_param = (struct wmi_host_wme_vparams *) (&wmm_vparams[ac]);
 		WMITLV_SET_HDR(&wmm_param->tlv_header,
 			       WMITLV_TAG_STRUC_wmi_vdev_set_wmm_params_cmd_fixed_param,
 			       WMITLV_GET_STRUCT_TLVLEN(wmi_wmm_vparams));
@@ -4742,7 +4744,7 @@ static QDF_STATUS send_process_update_edca_param_cmd_tlv(wmi_unified_t wmi_handl
 		wmm_param->aifs = twmm_param->aifs;
 		wmm_param->txoplimit = twmm_param->txoplimit;
 		wmm_param->acm = twmm_param->acm;
-		wmm_param->no_ack = twmm_param->no_ack;
+		wmm_param->no_ack = twmm_param->noackpolicy;
 	}
 
 	if (wmi_unified_cmd_send(wmi_handle, buf, len,
@@ -18805,8 +18807,6 @@ struct wmi_ops tlv_ops =  {
 	.send_get_link_speed_cmd = send_get_link_speed_cmd_tlv,
 	.send_egap_conf_params_cmd = send_egap_conf_params_cmd_tlv,
 	.send_bcn_buf_ll_cmd = send_bcn_buf_ll_cmd_tlv,
-	.send_process_update_edca_param_cmd =
-				 send_process_update_edca_param_cmd_tlv,
 	.send_roam_scan_offload_mode_cmd =
 			send_roam_scan_offload_mode_cmd_tlv,
 	.send_pktlog_wmi_send_cmd = send_pktlog_wmi_send_cmd_tlv,
@@ -18925,6 +18925,8 @@ struct wmi_ops tlv_ops =  {
 		send_thermal_mitigation_param_cmd_tlv,
 	.send_pdev_qvit_cmd = send_pdev_qvit_cmd_tlv,
 	.send_wmm_update_cmd = send_wmm_update_cmd_tlv,
+	.send_process_update_edca_param_cmd =
+				 send_process_update_edca_param_cmd_tlv,
 	.send_coex_config_cmd = send_coex_config_cmd_tlv,
 	.send_set_country_cmd = send_set_country_cmd_tlv,
 	.get_target_cap_from_service_ready = extract_service_ready_tlv,