Browse Source

qcacmn: Add support for vdev delete response handler

Add support for vdev delete response handler

Change-Id: I7944064857ee2a1c8c8c1dcb739d692a7f463a13
CRs-Fixed: 2149401
Om Prakash Tripathi 7 years ago
parent
commit
a917863e62

+ 13 - 0
wmi/inc/wmi_unified_api.h

@@ -1288,6 +1288,19 @@ QDF_STATUS wmi_extract_fips_event_data(void *wmi_hdl, void *evt_buf,
 QDF_STATUS wmi_extract_vdev_start_resp(void *wmi_hdl, void *evt_buf,
 		wmi_host_vdev_start_resp *vdev_rsp);
 
+/**
+ * wmi_extract_vdev_delete_resp - api to extract vdev delete
+ * response event params
+ * @wmi_handle: wma handle
+ * @evt_buf: pointer to event buffer
+ * @delele_rsp: pointer to hold delete response from firmware
+ *
+ * Return: QDF_STATUS_SUCCESS for successful event parse
+ *         else QDF_STATUS_E_INVAL or QDF_STATUS_E_FAILURE
+ */
+QDF_STATUS wmi_extract_vdev_delete_resp(void *wmi_hdl, void *evt_buf,
+		struct wmi_host_vdev_delete_resp *delele_rsp);
+
 QDF_STATUS wmi_extract_tbttoffset_update_params(void *wmi_hdl, void *evt_buf,
 		uint8_t idx, struct tbttoffset_params *tbtt_param);
 

+ 8 - 0
wmi/inc/wmi_unified_param.h

@@ -6153,6 +6153,14 @@ typedef struct {
 	uint32_t cfgd_rx_streams;
 } wmi_host_vdev_start_resp;
 
+/**
+ * struct wmi_host_vdev_delete_resp - VDEV delete response
+ * @vdev_id: vdev id
+ */
+struct wmi_host_vdev_delete_resp {
+	uint32_t vdev_id;
+};
+
 /**
  * struct wmi_host_roam_event - host roam event param
  * @vdev_id: vdev id

+ 3 - 0
wmi/inc/wmi_unified_priv.h

@@ -1099,6 +1099,9 @@ QDF_STATUS (*extract_fips_event_data)(wmi_unified_t wmi_handle,
 QDF_STATUS (*extract_vdev_start_resp)(wmi_unified_t wmi_handle, void *evt_buf,
 	wmi_host_vdev_start_resp *vdev_rsp);
 
+QDF_STATUS (*extract_vdev_delete_resp)(wmi_unified_t wmi_handle, void *evt_buf,
+	struct wmi_host_vdev_delete_resp *delete_rsp);
+
 QDF_STATUS (*extract_tbttoffset_update_params)(void *wmi_hdl, void *evt_buf,
 	uint8_t idx, struct tbttoffset_params *tbtt_param);
 

+ 21 - 0
wmi/src/wmi_unified_api.c

@@ -5241,6 +5241,27 @@ QDF_STATUS wmi_extract_vdev_start_resp(void *wmi_hdl, void *evt_buf,
 	return QDF_STATUS_E_FAILURE;
 }
 
+/**
+ * wmi_extract_vdev_delete_resp() - extract vdev delete response
+ * @wmi_handle: wmi handle
+ * @param evt_buf: pointer to event buffer
+ * @param delete_rsp: Pointer to hold vdev delete response
+ *
+ * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
+ */
+QDF_STATUS wmi_extract_vdev_delete_resp(void *wmi_hdl, void *evt_buf,
+	struct wmi_host_vdev_delete_resp *delete_rsp)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->extract_vdev_delete_resp)
+		return wmi_handle->ops->extract_vdev_delete_resp(wmi_handle,
+				evt_buf, delete_rsp);
+
+	return QDF_STATUS_E_FAILURE;
+}
+
+
 /**
  * wmi_extract_tbttoffset_num_vdevs() - extract tbtt offset num vdev
  * @wmi_handle: wmi handle

+ 34 - 0
wmi/src/wmi_unified_tlv.c

@@ -16950,6 +16950,39 @@ static QDF_STATUS extract_vdev_start_resp_tlv(wmi_unified_t wmi_handle,
 	return QDF_STATUS_SUCCESS;
 }
 
+/**
+ * extract_vdev_delete_resp_tlv() - extract vdev delete response
+ * @wmi_handle: wmi handle
+ * @param evt_buf: pointer to event buffer
+ * @param delete_rsp: Pointer to hold vdev delete response
+ *
+ * Return: QDF_STATUS_SUCCESS for success or error code
+ */
+static QDF_STATUS extract_vdev_delete_resp_tlv(wmi_unified_t wmi_handle,
+	void *evt_buf, struct wmi_host_vdev_delete_resp *delete_rsp)
+{
+	WMI_VDEV_DELETE_RESP_EVENTID_param_tlvs *param_buf;
+	wmi_vdev_delete_resp_event_fixed_param *ev;
+
+	param_buf = (WMI_VDEV_DELETE_RESP_EVENTID_param_tlvs *) evt_buf;
+	if (!param_buf) {
+		WMI_LOGE("Invalid vdev delete response event buffer\n");
+		return QDF_STATUS_E_INVAL;
+	}
+
+	ev = param_buf->fixed_param;
+	if (!ev) {
+		WMI_LOGE("Invalid vdev delete response event\n");
+		return QDF_STATUS_E_INVAL;
+	}
+
+	qdf_mem_zero(delete_rsp, sizeof(*delete_rsp));
+	delete_rsp->vdev_id = ev->vdev_id;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+
 /**
  * extract_tbttoffset_num_vdevs_tlv() - extract tbtt offset num vdev
  * @wmi_handle: wmi handle
@@ -20282,6 +20315,7 @@ struct wmi_ops tlv_ops =  {
 	.extract_ready_event_params = extract_ready_event_params_tlv,
 	.extract_dbglog_data_len = extract_dbglog_data_len_tlv,
 	.extract_vdev_start_resp = extract_vdev_start_resp_tlv,
+	.extract_vdev_delete_resp = extract_vdev_delete_resp_tlv,
 	.extract_tbttoffset_update_params =
 				extract_tbttoffset_update_params_tlv,
 	.extract_ext_tbttoffset_update_params =