瀏覽代碼

Merge "qca-wifi: Support multivdev restart response handling for TLV"

Linux Build Service Account 5 年之前
父節點
當前提交
325630ccc7
共有 1 個文件被更改,包括 44 次插入0 次删除
  1. 44 0
      wmi/src/wmi_unified_ap_tlv.c

+ 44 - 0
wmi/src/wmi_unified_ap_tlv.c

@@ -2488,6 +2488,48 @@ send_peer_chan_width_switch_cmd_tlv(wmi_unified_t wmi_handle,
 	return QDF_STATUS_SUCCESS;
 }
 
+static QDF_STATUS extract_multi_vdev_restart_resp_event_tlv(
+		wmi_unified_t wmi_hdl, void *evt_buf,
+		struct multi_vdev_restart_resp *param)
+{
+	WMI_PDEV_MULTIPLE_VDEV_RESTART_RESP_EVENTID_param_tlvs *param_buf;
+	wmi_pdev_multiple_vdev_restart_resp_event_fixed_param *ev;
+
+	param_buf =
+	(WMI_PDEV_MULTIPLE_VDEV_RESTART_RESP_EVENTID_param_tlvs *)evt_buf;
+	if (!param_buf) {
+		WMI_LOGE("Invalid buf multi_vdev restart response");
+		return QDF_STATUS_E_INVAL;
+	}
+
+	ev = (wmi_pdev_multiple_vdev_restart_resp_event_fixed_param *)
+							param_buf->fixed_param;
+	if (!ev) {
+		WMI_LOGE("Invalid ev multi_vdev restart response");
+		return QDF_STATUS_E_INVAL;
+	}
+
+	param->pdev_id = ev->pdev_id;
+	param->status = ev->status;
+
+	if (!param_buf->num_vdev_ids_bitmap)
+		return QDF_STATUS_E_FAILURE;
+
+	if (param_buf->num_vdev_ids_bitmap > sizeof(param->vdev_id_bmap)) {
+		WMI_LOGE("vdevId bitmap overflow size:%d",
+			 param_buf->num_vdev_ids_bitmap);
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	qdf_mem_copy(param->vdev_id_bmap, param_buf->vdev_ids_bitmap,
+		     param_buf->num_vdev_ids_bitmap);
+
+	WMI_LOGD("vdev_id_bmap :0x%x%x", param->vdev_id_bmap[1],
+		 param->vdev_id_bmap[0]);
+
+	return QDF_STATUS_SUCCESS;
+}
+
 void wmi_ap_attach_tlv(wmi_unified_t wmi_handle)
 {
 	struct wmi_ops *ops = wmi_handle->ops;
@@ -2557,4 +2599,6 @@ void wmi_ap_attach_tlv(wmi_unified_t wmi_handle)
 					set_rx_pkt_type_routing_tag_update_tlv;
 #endif /* WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG */
 	ops->send_peer_vlan_config_cmd = send_peer_vlan_config_cmd_tlv;
+	ops->extract_multi_vdev_restart_resp_event =
+				extract_multi_vdev_restart_resp_event_tlv;
 }