Procházet zdrojové kódy

qcacmn: Add extract API for UTF event to support TLV and Non-TLV targets

Add extract API for handling UTF event data received from the target
for both TLV and non-TLV cases.

Change-Id: I62525d7c8663fe90e0e3e76cf5286bb9dc86acd0
CRs-Fixed: 1115293
Sathish Kumar před 8 roky
rodič
revize
27ee0a3450
3 změnil soubory, kde provedl 63 přidání a 0 odebrání
  1. 23 0
      wmi_unified_api.c
  2. 19 0
      wmi_unified_non_tlv.c
  3. 21 0
      wmi_unified_tlv.c

+ 23 - 0
wmi_unified_api.c

@@ -6560,3 +6560,26 @@ QDF_STATUS wmi_extract_reg_cap_service_ready_ext(
 
 	return QDF_STATUS_E_FAILURE;
 }
+
+/**
+ * wmi_extract_pdev_utf_event() -
+ *       extract UTF data from pdev utf event
+ * @wmi_handle: wmi handle
+ * @param evt_buf: pointer to event buffer
+ * @param param: Pointer to hold evt buf
+ *
+ * Return: QDF_STATUS_SUCCESS for success or error code
+ */
+QDF_STATUS wmi_extract_pdev_utf_event(void *wmi_hdl,
+				      uint8_t *evt_buf,
+				      struct wmi_host_pdev_utf_event *param)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
+
+	if (wmi_handle->ops->extract_pdev_utf_event)
+		return wmi_handle->ops->extract_pdev_utf_event(
+				wmi_handle,
+				evt_buf, param);
+
+	return QDF_STATUS_E_FAILURE;
+}

+ 19 - 0
wmi_unified_non_tlv.c

@@ -7846,6 +7846,24 @@ static QDF_STATUS extract_atf_token_info_ev_non_tlv(
 	return QDF_STATUS_SUCCESS;
 }
 
+/**
+ * extract_pdev_utf_event_non_tlv() - extract UTF data info from event
+ * @wmi_handle: WMI handle
+ * @param evt_buf: Pointer to event buffer
+ * @param param: Pointer to hold data
+ *
+ * Return : QDF_STATUS_SUCCESS for success or error code
+ */
+static QDF_STATUS extract_pdev_utf_event_non_tlv(
+			wmi_unified_t wmi_handle,
+			uint8_t *evt_buf,
+			struct wmi_host_pdev_utf_event *event)
+{
+	event->data = evt_buf;
+
+	return QDF_STATUS_SUCCESS;
+}
+
 #ifdef WMI_INTERFACE_EVENT_LOGGING
 static bool is_management_record_non_tlv(uint32_t cmd_id)
 {
@@ -8087,6 +8105,7 @@ struct wmi_ops non_tlv_ops =  {
 	.extract_mu_db_entry = extract_mu_db_entry_non_tlv,
 	.extract_atf_peer_stats_ev = extract_atf_peer_stats_ev_non_tlv,
 	.extract_atf_token_info_ev = extract_atf_token_info_ev_non_tlv,
+	.extract_pdev_utf_event = extract_pdev_utf_event_non_tlv,
 	.wmi_set_htc_tx_tag = wmi_set_htc_tx_tag_non_tlv,
 };
 

+ 21 - 0
wmi_unified_tlv.c

@@ -12774,6 +12774,26 @@ static QDF_STATUS extract_chan_info_event_tlv(wmi_unified_t wmi_handle,
 	return QDF_STATUS_SUCCESS;
 }
 
+/**
+ * extract_pdev_utf_event_tlv() - extract UTF data info from event
+ * @wmi_handle: WMI handle
+ * @param evt_buf: Pointer to event buffer
+ * @param param: Pointer to hold data
+ *
+ * Return : QDF_STATUS_SUCCESS for success or error code
+ */
+static QDF_STATUS extract_pdev_utf_event_tlv(wmi_unified_t wmi_handle,
+			     uint8_t *evt_buf,
+			     struct wmi_host_pdev_utf_event *event)
+{
+	WMI_PDEV_UTF_EVENTID_param_tlvs *param_buf;
+
+	param_buf = (WMI_PDEV_UTF_EVENTID_param_tlvs *)evt_buf;
+	event->data = param_buf->data;
+	event->datalen = param_buf->num_data;
+
+	return QDF_STATUS_SUCCESS;
+}
 /**
  * extract_channel_hopping_event_tlv() - extract channel hopping param
  * from event
@@ -13382,6 +13402,7 @@ struct wmi_ops tlv_ops =  {
 				extract_mac_phy_cap_service_ready_ext_tlv,
 	.extract_reg_cap_service_ready_ext =
 				extract_reg_cap_service_ready_ext_tlv,
+	.extract_pdev_utf_event = extract_pdev_utf_event_tlv,
 	.wmi_set_htc_tx_tag = wmi_set_htc_tx_tag_tlv,
 };