Ver Fonte

qcacmn: WMI Recording Failure on Multi-radio RDPs

WMI recording is done per pdev and hence an instance of
debugfs directory (eg: WMI0, WMI1, WMI2 for 3 radio boards)
has to be created in /sys/kernel/debug/ path.

The wmi handle is per pdev and hence is causing the problem of wmi_instance
being 0 always as each pdev has its own wmi_handle.
WMI1 and WMI2 debugfs directories are not created as wmi_instance
is always 0.

WMI debugfs directory is created for every pdev of the psoc and naming
convention is changed to WMI_SOCx_PDEVx.

Change-Id: Ieb7e9d072d84f699588a8f719508c5cd8d9873fb
CRs-Fixed: 2232472
c_priys há 7 anos atrás
pai
commit
cc79b35edf
2 ficheiros alterados com 4 adições e 2 exclusões
  1. 1 0
      wmi_unified_api.h
  2. 3 2
      wmi_unified_priv.h

+ 1 - 0
wmi_unified_api.h

@@ -138,6 +138,7 @@ struct wmi_unified_attach_params {
 	struct wmi_rx_ops *rx_ops;
 	struct wlan_objmgr_psoc *psoc;
 	uint16_t max_commands;
+	uint32_t soc_id;
 };
 
 /**

+ 3 - 2
wmi_unified_priv.h

@@ -169,7 +169,6 @@ struct wmi_debug_log_info {
 	uint32_t buf_offset_command;
 	uint32_t buf_offset_event;
 	struct dentry *wmi_log_debugfs_dir;
-	uint8_t wmi_instance_id;
 };
 
 #endif /*WMI_INTERFACE_EVENT_LOGGING */
@@ -1700,6 +1699,7 @@ struct wmi_host_abi_version {
 	uint32_t abi_version_ns_3;
 };
 
+#define NUM_DEBUG_INFOS 9
 struct wmi_unified {
 	void *scn_handle;    /* handle to device */
 	osdev_t  osdev; /* handle to use OS-independent services */
@@ -1749,6 +1749,7 @@ struct wmi_unified {
 	uint32_t *services;
 	struct wmi_soc *soc;
 	uint16_t wmi_max_cmds;
+	struct dentry *debugfs_de[NUM_DEBUG_INFOS];
 };
 
 #define WMI_MAX_RADIOS 3
@@ -1778,7 +1779,7 @@ struct wmi_soc {
 #endif
 	uint32_t services[wmi_services_max];
 	uint16_t wmi_max_cmds;
-
+	uint32_t soc_idx;
 };
 
 void wmi_unified_register_module(enum wmi_target_type target_type,