Przeglądaj źródła

qcacmn: Send connected links bitmap to FW

Send connected links bitmap to FW via a command:
WMI_REQUEST_STATS_EXT_CMDID in case of MLO connection.

Change-Id: I8ea88b0474769a56f5efa0cd006ba515e858accf
CRs-Fixed: 3149043
abhinav kumar 3 lat temu
rodzic
commit
8932989aaf
2 zmienionych plików z 18 dodań i 1 usunięć
  1. 2 0
      wmi/inc/wmi_unified_param.h
  2. 16 1
      wmi/src/wmi_unified_tlv.c

+ 2 - 0
wmi/inc/wmi_unified_param.h

@@ -2632,11 +2632,13 @@ struct ext_wow_params {
  * struct stats_ext_params - ext stats request
  * @vdev_id: vdev id
  * @request_data_len: request data length
+ * @vdev_id_bitmap: mlo connected vdev id bitmap
  * @request_data: request data
  */
 struct stats_ext_params {
 	uint32_t vdev_id;
 	uint32_t request_data_len;
+	uint32_t vdev_id_bitmap;
 	uint8_t request_data[];
 };
 

+ 16 - 1
wmi/src/wmi_unified_tlv.c

@@ -6661,6 +6661,7 @@ static QDF_STATUS send_stats_ext_req_cmd_tlv(wmi_unified_t wmi_handle,
 	size_t len;
 	uint8_t *buf_ptr;
 	uint16_t max_wmi_msg_size = wmi_get_max_msg_len(wmi_handle);
+	uint32_t *vdev_bitmap;
 
 	if (preq->request_data_len > (max_wmi_msg_size - WMI_TLV_HDR_SIZE -
 				      sizeof(*cmd))) {
@@ -6669,7 +6670,8 @@ static QDF_STATUS send_stats_ext_req_cmd_tlv(wmi_unified_t wmi_handle,
 		return QDF_STATUS_E_FAILURE;
 	}
 
-	len = sizeof(*cmd) + WMI_TLV_HDR_SIZE + preq->request_data_len;
+	len = sizeof(*cmd) + WMI_TLV_HDR_SIZE + preq->request_data_len +
+	      WMI_TLV_HDR_SIZE + sizeof(uint32_t);
 
 	buf = wmi_buf_alloc(wmi_handle, len);
 	if (!buf)
@@ -6694,6 +6696,19 @@ static QDF_STATUS send_stats_ext_req_cmd_tlv(wmi_unified_t wmi_handle,
 	buf_ptr += WMI_TLV_HDR_SIZE;
 	qdf_mem_copy(buf_ptr, preq->request_data, cmd->data_len);
 
+	buf_ptr += cmd->data_len;
+	WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_UINT32, sizeof(uint32_t));
+
+	buf_ptr += WMI_TLV_HDR_SIZE;
+
+	vdev_bitmap = (A_UINT32 *)buf_ptr;
+
+	vdev_bitmap[0] = preq->vdev_id_bitmap;
+
+	wmi_debug("Sending MLO vdev_id_bitmap:%x", vdev_bitmap[0]);
+
+	buf_ptr += sizeof(uint32_t);
+
 	wmi_mtrace(WMI_REQUEST_STATS_EXT_CMDID, cmd->vdev_id, 0);
 	ret = wmi_unified_cmd_send(wmi_handle, buf, len,
 				   WMI_REQUEST_STATS_EXT_CMDID);