소스 검색

qcacmn: [11AX] Add changes for 11ax peer association

Add changes for peer association by adding support to
include HE capabilities and HE operation information
in vdev start and peer assoc WMI commands.

Change-Id: I50c0241f872219e08ee2d231c907309ee5adceef
CRs-Fixed: 1073481
Krishna Kumaar Natarajan 8 년 전
부모
커밋
cc9d503469
1개의 변경된 파일12개의 추가작업 그리고 10개의 파일을 삭제
  1. 12 10
      wmi_unified_tlv.c

+ 12 - 10
wmi_unified_tlv.c

@@ -357,6 +357,7 @@ static QDF_STATUS send_vdev_start_cmd_tlv(wmi_unified_t wmi_handle,
 	cmd->preferred_tx_streams = req->preferred_tx_streams;
 	cmd->cac_duration_ms = req->cac_duration_ms;
 	cmd->regdomain = req->regdomain;
+	cmd->he_ops = req->he_ops;
 
 	buf_ptr = (uint8_t *) (((uintptr_t) cmd) + sizeof(*cmd) +
 			       sizeof(wmi_channel));
@@ -366,13 +367,13 @@ static QDF_STATUS send_vdev_start_cmd_tlv(wmi_unified_t wmi_handle,
 	WMI_LOGA("%s: vdev_id %d freq %d chanmode %d ch_info: 0x%x is_dfs %d "
 		"beacon interval %d dtim %d center_chan %d center_freq2 %d "
 		"reg_info_1: 0x%x reg_info_2: 0x%x, req->max_txpow: 0x%x "
-		"Tx SS %d, Rx SS %d, cac %d, regd %d",
+		"Tx SS %d, Rx SS %d, cac %d, regd %d, HE ops: %d",
 		__func__, req->vdev_id, chan->mhz, req->chan_mode, chan->info,
 		req->is_dfs, req->beacon_intval, cmd->dtim_period,
 		chan->band_center_freq1, chan->band_center_freq2,
 		chan->reg_info_1, chan->reg_info_2, req->max_txpow,
 		req->preferred_tx_streams, req->preferred_rx_streams,
-		req->cac_duration_ms, req->regdomain);
+		req->cac_duration_ms, req->regdomain, req->he_ops);
 
 	if (req->is_restart)
 		ret = wmi_unified_cmd_send(wmi_handle, buf, len,
@@ -1880,6 +1881,15 @@ static QDF_STATUS send_peer_assoc_cmd_tlv(wmi_unified_t wmi_handle,
 	cmd->peer_vht_caps = param->peer_vht_caps;
 	cmd->peer_phymode = param->peer_phymode;
 
+	/* Update 11ax capabilities */
+	cmd->peer_he_cap_info = param->peer_he_cap_macinfo;
+	cmd->peer_he_ops = param->peer_he_ops;
+	cmd->peer_he_mcs = param->peer_he_mcs;
+	qdf_mem_copy(&cmd->peer_he_cap_phy, &param->peer_he_cap_phyinfo,
+				sizeof(param->peer_he_cap_phyinfo));
+	qdf_mem_copy(&cmd->peer_ppet, &param->peer_ppet,
+				sizeof(param->peer_ppet));
+
 	/* Update peer legacy rate information */
 	buf_ptr += sizeof(*cmd);
 	WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_BYTE,
@@ -1911,14 +1921,6 @@ static QDF_STATUS send_peer_assoc_cmd_tlv(wmi_unified_t wmi_handle,
 		mcs->tx_max_rate = param->tx_max_rate;
 		mcs->tx_mcs_set = param->tx_mcs_set;
 	}
-	/* Update 11ax capabilities */
-	cmd->peer_he_cap_info = param->peer_he_cap_macinfo;
-	cmd->peer_he_ops = param->peer_he_ops;
-	cmd->peer_he_mcs = param->peer_he_mcs;
-	qdf_mem_copy(&cmd->peer_he_cap_phy, &param->peer_he_cap_phyinfo,
-				sizeof(param->peer_he_cap_phyinfo));
-	qdf_mem_copy(&cmd->peer_ppet, &param->peer_ppet,
-				sizeof(param->peer_ppet));
 
 	WMI_LOGD("%s: vdev_id %d associd %d peer_flags %x rate_caps %x "
 		 "peer_caps %x listen_intval %d ht_caps %x max_mpdu %d "