Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 77fde7b9 authored by Surabhi Vishnoi's avatar Surabhi Vishnoi Committed by Madan Koyyalamudi
Browse files

qcacmn: Add support to handle wmi smart monitor event

Add functions to parse and extract wmi smart monitor
event received from target.

Change-Id: Ic18e3134b684c5f8e12839e997d628909a7e27c9
CRs-Fixed: 2969247
parent b85c7889
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -4128,6 +4128,20 @@ wmi_unified_extract_vdev_mgmt_offload_event(wmi_unified_t wmi, void *evt_buf,
				struct mgmt_offload_event_params *params);
#endif

#ifdef WLAN_FEATURE_PKT_CAPTURE_V2
/**
 * wmi_unified_extract_smart_monitor_event() - Extract smu event params
 * @wmi: WMI handle
 * @evt_buf: Event buffer
 * @params: Smart monitor event params
 *
 * Return: QDF_STATUS
 */
QDF_STATUS
wmi_unified_extract_smart_monitor_event(wmi_unified_t wmi, void *evt_buf,
					struct smu_event_params *params);
#endif

#ifdef FEATURE_WLAN_TIME_SYNC_FTM
/**
 * wmi_unified_send_wlan_time_sync_ftm_trigger() - send ftm timesync trigger cmd
+3 −0
Original line number Diff line number Diff line
@@ -4682,6 +4682,9 @@ typedef enum {
	wmi_peer_create_conf_event_id,
	wmi_pdev_cp_fwstats_eventid,
	wmi_vdev_send_big_data_p2_eventid,
#ifdef WLAN_FEATURE_PKT_CAPTURE_V2
	wmi_vdev_smart_monitor_event_id,
#endif
	wmi_events_max,
} wmi_conv_event_id;

+7 −0
Original line number Diff line number Diff line
@@ -2431,6 +2431,13 @@ QDF_STATUS (*extract_vdev_mgmt_offload_event)(
				struct mgmt_offload_event_params *params);
#endif /* WLAN_FEATURE_PKT_CAPTURE */

#ifdef WLAN_FEATURE_PKT_CAPTURE_V2
QDF_STATUS (*extract_smart_monitor_event)(
				void *handle,
				void *event_buf,
				struct smu_event_params *params);
#endif /* WLAN_FEATURE_PKT_CAPTURE_V2 */

QDF_STATUS (*multisoc_tbtt_sync_cmd)(wmi_unified_t wmi_handle,
				     struct rnr_tbtt_multisoc_sync_param *param);

+14 −0
Original line number Diff line number Diff line
@@ -3231,6 +3231,20 @@ wmi_unified_extract_vdev_mgmt_offload_event(
}
#endif /* WLAN_FEATURE_PKT_CAPTURE */

#ifdef WLAN_FEATURE_PKT_CAPTURE_V2
QDF_STATUS
wmi_unified_extract_smart_monitor_event(
				wmi_unified_t wmi, void *evt_buf,
				struct smu_event_params *params)
{
	if (wmi->ops->extract_smart_monitor_event)
		return wmi->ops->extract_smart_monitor_event(wmi, evt_buf,
							     params);

	return QDF_STATUS_E_FAILURE;
}
#endif /* WLAN_FEATURE_PKT_CAPTURE_V2 */

QDF_STATUS
wmi_unified_extract_roam_result_stats(wmi_unified_t wmi, void *buf,
				      struct wmi_roam_result *dst,
+37 −0
Original line number Diff line number Diff line
@@ -14295,6 +14295,36 @@ extract_vdev_mgmt_offload_event_tlv(void *handle, void *evt_buf,
}
#endif /* WLAN_FEATURE_PKT_CAPTURE */

#ifdef WLAN_FEATURE_PKT_CAPTURE_V2
static QDF_STATUS
extract_smart_monitor_event_tlv(void *handle, void *evt_buf,
				struct smu_event_params *params)
{
	WMI_VDEV_SMART_MONITOR_EVENTID_param_tlvs *param_buf = NULL;
	wmi_vdev_smart_monitor_event_fixed_param *smu_event = NULL;

	param_buf = (WMI_VDEV_SMART_MONITOR_EVENTID_param_tlvs *)evt_buf;
	if (!param_buf) {
		wmi_err("Invalid smart monitor event");
		return QDF_STATUS_E_INVAL;
	}

	smu_event = param_buf->fixed_param;
	if (!smu_event) {
		wmi_err("smart monitor event fixed param is NULL");
		return QDF_STATUS_E_INVAL;
	}

	params->vdev_id = smu_event->vdev_id;
	if (params->vdev_id >= WLAN_UMAC_PDEV_MAX_VDEVS)
		return QDF_STATUS_E_INVAL;

	params->rx_avg_rssi = smu_event->avg_rssi_data_dbm;

	return QDF_STATUS_SUCCESS;
}
#endif /* WLAN_FEATURE_PKT_CAPTURE_V2 */

#ifdef FEATURE_WLAN_TIME_SYNC_FTM
/**
 * send_wlan_ts_ftm_trigger_cmd_tlv(): send wlan time sync cmd to FW
@@ -14887,6 +14917,9 @@ struct wmi_ops tlv_ops = {
#ifdef WLAN_FEATURE_PKT_CAPTURE
	.extract_vdev_mgmt_offload_event = extract_vdev_mgmt_offload_event_tlv,
#endif
#ifdef WLAN_FEATURE_PKT_CAPTURE_V2
	.extract_smart_monitor_event = extract_smart_monitor_event_tlv,
#endif

#ifdef FEATURE_WLAN_TIME_SYNC_FTM
	.send_wlan_time_sync_ftm_trigger_cmd = send_wlan_ts_ftm_trigger_cmd_tlv,
@@ -15309,6 +15342,10 @@ event_ids[wmi_roam_scan_chan_list_id] =
			WMI_CTRL_PATH_STATS_EVENTID;
	event_ids[wmi_vdev_send_big_data_p2_eventid] =
			WMI_VDEV_SEND_BIG_DATA_P2_EVENTID;
#ifdef WLAN_FEATURE_PKT_CAPTURE_V2
	event_ids[wmi_vdev_smart_monitor_event_id] =
			WMI_VDEV_SMART_MONITOR_EVENTID;
#endif
}

#ifdef WLAN_FEATURE_LINK_LAYER_STATS