فهرست منبع

qcacmn: CE Debug Enhancements WMI interface

Add WMI interface for the smart logging feature.

Change-Id: Ife3784020d1b9458c2b09b6a2f31f55aab5f57ec
CRs-Fixed: 2001507
c_cgodav 8 سال پیش
والد
کامیت
a5eb9a2e00
3فایلهای تغییر یافته به همراه82 افزوده شده و 0 حذف شده
  1. 38 0
      wmi_unified_api.h
  2. 33 0
      wmi_unified_param.h
  3. 11 0
      wmi_unified_priv.h

+ 38 - 0
wmi_unified_api.h

@@ -2331,4 +2331,42 @@ wmi_unified_dfs_send_avg_params_cmd(void *wmi_hdl,
 QDF_STATUS wmi_extract_dfs_status_from_fw(void *wmi_hdl, void *evt_buf,
 					  uint32_t  *dfs_status_check);
 #endif
+#ifdef OL_ATH_SMART_LOGGING
+/**
+ * wmi_unified_send_smart_logging_enable_cmd() - send smart logging enable cmd
+ * @wmi_hdl: wmi handle
+ * @params: enable/disable
+ *
+ * This function enables/disable the smart logging feature
+ *
+ * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
+ */
+QDF_STATUS wmi_unified_send_smart_logging_enable_cmd(void *wmi_hdl,
+						     uint32_t param);
+
+/**
+ * wmi_unified_send_smart_logging_fatal_cmd() - send smart logging fatal cmd
+ * @wmi_hdl: wmi handle
+ * @param:  Fatal event
+ *
+ * This function sends the smart log fatal events to the FW
+ *
+ * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
+ */
+QDF_STATUS wmi_unified_send_smart_logging_fatal_cmd
+					(void *wmi_hdl,
+					struct wmi_debug_fatal_events *param);
+
+/**
+ * wmi_extract_smartlog_ev() - extract smartlog event info from event
+ * @wmi_handle: wmi handle
+ * @param evt_buf: pointer to event buffer
+ * @param ev: Pointer to hold fatal events
+ *
+ * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
+ */
+QDF_STATUS wmi_extract_smartlog_ev
+				(void *wmi_hdl, void *evt_buf,
+				struct wmi_debug_fatal_events *ev);
+#endif /* OL_ATH_SMART_LOGGING */
 #endif /* _WMI_UNIFIED_API_H_ */

+ 33 - 0
wmi_unified_param.h

@@ -5531,6 +5531,9 @@ typedef enum {
 	wmi_twt_enable_complete_event_id,
 	wmi_apf_get_vdev_work_memory_resp_event_id,
 
+#ifdef OL_ATH_SMART_LOGGING
+	wmi_debug_fatal_condition_eventid,
+#endif /* OL_ATH_SMART_LOGGING */
 	wmi_events_max,
 } wmi_conv_event_id;
 
@@ -5962,6 +5965,9 @@ typedef enum {
 	wmi_service_twt_responder,
 	wmi_service_listen_interval_offload_support,
 
+#ifdef OL_ATH_SMART_LOGGING
+	wmi_service_smart_logging_support,
+#endif
 	wmi_services_max,
 } wmi_conv_service_ids;
 #define WMI_SERVICE_UNAVAILABLE 0xFFFF
@@ -7916,6 +7922,33 @@ struct wmi_host_pdev_band_to_mac {
 };
 #define WMI_HOST_MAX_PDEV 3
 
+#ifdef OL_ATH_SMART_LOGGING
+/**
+ * struct wmi_fatal_condition_event - Fatal condition event param
+ * @type: Type of event
+ * @subtype: subtype of event
+ * @reserved0: reserved
+ */
+struct wmi_fatal_condition_event {
+	uint32_t type;
+	uint32_t subtype;
+	uint32_t reserved0;
+};
+
+/*Currently the Max fatal events is 3 */
+#define FATAL_EVENTS_MAX 3
+
+/**
+ * struct wmi_debug_fatal_events: Fatal events list
+ * @num_events:Number of events
+ * @event[FATAL_EVENTS_MAX]: Each event data
+ */
+struct wmi_debug_fatal_events {
+	uint32_t num_events;
+	struct wmi_fatal_condition_event event[FATAL_EVENTS_MAX];
+};
+#endif /* OL_ATH_SMART_LOGGING */
+
 /**
  * struct wmi_init_cmd_param - INIT command params
  * @target_resource_config: pointer to resource config

+ 11 - 0
wmi_unified_priv.h

@@ -1147,7 +1147,14 @@ QDF_STATUS
 
 QDF_STATUS (*send_bcn_offload_control_cmd)(wmi_unified_t wmi_handle,
 			struct bcn_offload_control *bcn_ctrl_param);
+#ifdef OL_ATH_SMART_LOGGING
+QDF_STATUS
+(*send_smart_logging_enable_cmd)(wmi_unified_t wmi_handle, uint32_t param);
 
+QDF_STATUS
+(*send_smart_logging_fatal_cmd)(wmi_unified_t wmi_handle,
+				struct wmi_debug_fatal_events *param);
+#endif /* OL_ATH_SMART_LOGGING */
 QDF_STATUS (*extract_wds_addr_event)(wmi_unified_t wmi_handle,
 	void *evt_buf, uint16_t len, wds_addr_event_t *wds_ev);
 
@@ -1366,6 +1373,10 @@ QDF_STATUS (*extract_vdev_nac_rssi_stats)(wmi_unified_t wmi_handle, void *evt_bu
 QDF_STATUS (*extract_bcn_stats)(wmi_unified_t wmi_handle, void *evt_buf,
 		uint32_t index, wmi_host_bcn_stats *bcn_stats);
 
+#ifdef OL_ATH_SMART_LOGGING
+QDF_STATUS (*extract_smartlog_event)(wmi_unified_t wmi_handle, void *evt_buf,
+				     struct wmi_debug_fatal_events *event);
+#endif /* OL_ATH_SMART_LOGGING */
 QDF_STATUS (*send_power_dbg_cmd)(wmi_unified_t wmi_handle,
 				struct wmi_power_dbg_params *param);