Browse Source

qcacmn: Add WMI Tx completed logs into the minidump

As part of minidump enhancement feature, incorporate
wmi_command_tx_cmp_log_buffer data structure into the minidump.

Change-Id: I323971cc397b3ec710152c774462c85900acc603
CRs-Fixed: 2950790
Aditya Kodukula 4 years ago
parent
commit
9e1d64a55f
1 changed files with 24 additions and 0 deletions
  1. 24 0
      wmi/src/wmi_unified.c

+ 24 - 0
wmi/src/wmi_unified.c

@@ -148,6 +148,24 @@ uint32_t g_wmi_rx_event_buf_idx = 0;
 struct wmi_event_debug wmi_rx_event_log_buffer[WMI_EVENT_DEBUG_MAX_ENTRY];
 struct wmi_event_debug wmi_rx_event_log_buffer[WMI_EVENT_DEBUG_MAX_ENTRY];
 #endif
 #endif
 
 
+static void wmi_minidump_detach(struct wmi_unified *wmi_handle)
+{
+	struct wmi_log_buf_t *info =
+		&wmi_handle->log_info.wmi_command_tx_cmp_log_buf_info;
+	uint32_t buf_size = info->size * sizeof(struct wmi_command_cmp_debug);
+
+	qdf_minidump_remove(info->buf, buf_size, "wmi_tx_cmp");
+}
+
+static void wmi_minidump_attach(struct wmi_unified *wmi_handle)
+{
+	struct wmi_log_buf_t *info =
+		&wmi_handle->log_info.wmi_command_tx_cmp_log_buf_info;
+	uint32_t buf_size = info->size * sizeof(struct wmi_command_cmp_debug);
+
+	qdf_minidump_log(info->buf, buf_size, "wmi_tx_cmp");
+}
+
 #define WMI_COMMAND_RECORD(h, a, b) {					\
 #define WMI_COMMAND_RECORD(h, a, b) {					\
 	if (wmi_cmd_log_max_entry <=					\
 	if (wmi_cmd_log_max_entry <=					\
 		*(h->log_info.wmi_command_log_buf_info.p_buf_tail_idx))	\
 		*(h->log_info.wmi_command_log_buf_info.p_buf_tail_idx))	\
@@ -1349,6 +1367,8 @@ static void wmi_debugfs_remove(wmi_unified_t wmi_handle) { }
 void wmi_mgmt_cmd_record(wmi_unified_t wmi_handle, uint32_t cmd,
 void wmi_mgmt_cmd_record(wmi_unified_t wmi_handle, uint32_t cmd,
 			void *header, uint32_t vdev_id, uint32_t chanfreq) { }
 			void *header, uint32_t vdev_id, uint32_t chanfreq) { }
 static inline void wmi_log_buffer_free(struct wmi_unified *wmi_handle) { }
 static inline void wmi_log_buffer_free(struct wmi_unified *wmi_handle) { }
+static void wmi_minidump_detach(struct wmi_unified *wmi_handle) { }
+static void wmi_minidump_attach(struct wmi_unified *wmi_handle) { }
 #endif /*WMI_INTERFACE_EVENT_LOGGING */
 #endif /*WMI_INTERFACE_EVENT_LOGGING */
 qdf_export_symbol(wmi_mgmt_cmd_record);
 qdf_export_symbol(wmi_mgmt_cmd_record);
 
 
@@ -3223,6 +3243,8 @@ void *wmi_unified_attach(void *scn_handle,
 
 
 	wmi_hang_event_notifier_register(wmi_handle);
 	wmi_hang_event_notifier_register(wmi_handle);
 
 
+	wmi_minidump_attach(wmi_handle);
+
 	return wmi_handle;
 	return wmi_handle;
 
 
 error:
 error:
@@ -3245,6 +3267,8 @@ void wmi_unified_detach(struct wmi_unified *wmi_handle)
 	struct wmi_soc *soc;
 	struct wmi_soc *soc;
 	uint8_t i;
 	uint8_t i;
 
 
+	wmi_minidump_detach(wmi_handle);
+
 	wmi_hang_event_notifier_unregister();
 	wmi_hang_event_notifier_unregister();
 
 
 	wmi_wbuff_deregister(wmi_handle);
 	wmi_wbuff_deregister(wmi_handle);