فهرست منبع

qcacmn: Extract meta data from dbr event

Extract meta data from the dbr wmi event.

CRs-Fixed: 2219818
Change-Id: Ib19588775060e75017e9777206132a0efeec6223
Edayilliam Jayadev 7 سال پیش
والد
کامیت
9265122fcf
2فایلهای تغییر یافته به همراه40 افزوده شده و 0 حذف شده
  1. 15 0
      wmi_unified_api.c
  2. 25 0
      wmi_unified_tlv.c

+ 15 - 0
wmi_unified_api.c

@@ -6907,6 +6907,21 @@ QDF_STATUS wmi_extract_dbr_buf_release_entry(
 	return QDF_STATUS_E_FAILURE;
 }
 
+QDF_STATUS wmi_extract_dbr_buf_metadata(
+			void *wmi_hdl,
+			uint8_t *evt_buf, uint8_t idx,
+			struct direct_buf_rx_metadata *param)
+{
+	wmi_unified_t wmi_handle = (wmi_unified_t)wmi_hdl;
+
+	if (wmi_handle->ops->extract_dbr_buf_metadata)
+		return wmi_handle->ops->extract_dbr_buf_metadata(
+				wmi_handle,
+				evt_buf, idx, param);
+
+	return QDF_STATUS_E_FAILURE;
+}
+
 /**
  * wmi_extract_pdev_utf_event() -
  *       extract UTF data from pdev utf event

+ 25 - 0
wmi_unified_tlv.c

@@ -20070,6 +20070,7 @@ static QDF_STATUS extract_dbr_buf_release_fixed_tlv(wmi_unified_t wmi_handle,
 								ev->pdev_id);
 	param->mod_id = ev->mod_id;
 	param->num_buf_release_entry = ev->num_buf_release_entry;
+	param->num_meta_data_entry = ev->num_meta_data_entry;
 	WMI_LOGD("%s:pdev id %d mod id %d num buf release entry %d\n", __func__,
 		 param->pdev_id, param->mod_id, param->num_buf_release_entry);
 
@@ -20101,6 +20102,29 @@ static QDF_STATUS extract_dbr_buf_release_entry_tlv(wmi_unified_t wmi_handle,
 	return QDF_STATUS_SUCCESS;
 }
 
+static QDF_STATUS extract_dbr_buf_metadata_tlv(
+		wmi_unified_t wmi_handle, uint8_t *event,
+		uint8_t idx, struct direct_buf_rx_metadata *param)
+{
+	WMI_PDEV_DMA_RING_BUF_RELEASE_EVENTID_param_tlvs *param_buf;
+	wmi_dma_buf_release_spectral_meta_data *entry;
+
+	param_buf = (WMI_PDEV_DMA_RING_BUF_RELEASE_EVENTID_param_tlvs *)event;
+	if (!param_buf)
+		return QDF_STATUS_E_INVAL;
+
+	entry = &param_buf->meta_data[idx];
+
+	if (!entry) {
+		WMI_LOGE("%s: Entry is NULL\n", __func__);
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	qdf_mem_copy(param->noisefloor, entry->noise_floor,
+		     sizeof(entry->noise_floor));
+	return QDF_STATUS_SUCCESS;
+}
+
 /**
  * extract_dcs_interference_type_tlv() - extract dcs interference type
  * from event
@@ -22730,6 +22754,7 @@ struct wmi_ops tlv_ops =  {
 				extract_dbr_ring_cap_service_ready_ext_tlv,
 	.extract_dbr_buf_release_fixed = extract_dbr_buf_release_fixed_tlv,
 	.extract_dbr_buf_release_entry = extract_dbr_buf_release_entry_tlv,
+	.extract_dbr_buf_metadata = extract_dbr_buf_metadata_tlv,
 	.extract_pdev_utf_event = extract_pdev_utf_event_tlv,
 	.wmi_set_htc_tx_tag = wmi_set_htc_tx_tag_tlv,
 	.extract_dcs_interference_type = extract_dcs_interference_type_tlv,