mac80211: add patch for mwifiex to fix cryptic errors/warnings
[openwrt/staging/ansuel.git] / package / kernel / mac80211 / patches / mwl / 950-mwifiex-Print-stringified-name-of-command-in-error-l.patch
1 From f7252b1b5755150535af226e806594bbefd45e0f Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
3 Date: Sun, 26 Sep 2021 14:39:44 +0200
4 Subject: [PATCH] mwifiex: Print stringified name of command in error log
5 MIME-Version: 1.0
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
8
9 Failed hex command number in error log is hard to understand.
10 So add also more human readable stringified command name into error log.
11
12 Signed-off-by: Pali Rohár <pali@kernel.org>
13 ---
14 drivers/net/wireless/marvell/mwifiex/cmdevt.c | 96 +++++++++++++++++--
15 drivers/net/wireless/marvell/mwifiex/main.h | 2 +
16 .../wireless/marvell/mwifiex/sta_cmdresp.c | 5 +-
17 .../net/wireless/marvell/mwifiex/uap_cmd.c | 3 +-
18 4 files changed, 95 insertions(+), 11 deletions(-)
19
20 diff --git a/drivers/net/wireless/marvell/mwifiex/cmdevt.c b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
21 index 5a2788955f1c..1b05002330ff 100644
22 --- a/drivers/net/wireless/marvell/mwifiex/cmdevt.c
23 +++ b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
24 @@ -28,6 +28,85 @@
25
26 static void mwifiex_cancel_pending_ioctl(struct mwifiex_adapter *adapter);
27
28 +const char *
29 +mwifiex_cmd_to_str(u16 command)
30 +{
31 + switch (command) {
32 + case HostCmd_CMD_GET_HW_SPEC: return "GET_HW_SPEC";
33 + case HostCmd_CMD_802_11_SCAN: return "SCAN";
34 + case HostCmd_CMD_802_11_GET_LOG: return "GET_LOG";
35 + case HostCmd_CMD_MAC_MULTICAST_ADR: return "MAC_MULTICAST_ADR";
36 + case HostCmd_CMD_802_11_EEPROM_ACCESS: return "EEPROM_ACCESS";
37 + case HostCmd_CMD_802_11_ASSOCIATE: return "ASSOCIATE";
38 + case HostCmd_CMD_802_11_SNMP_MIB: return "SNMP_MIB";
39 + case HostCmd_CMD_MAC_REG_ACCESS: return "MAC_REG_ACCESS";
40 + case HostCmd_CMD_BBP_REG_ACCESS: return "BBP_REG_ACCESS";
41 + case HostCmd_CMD_RF_REG_ACCESS: return "RF_REG_ACCESS";
42 + case HostCmd_CMD_PMIC_REG_ACCESS: return "PMIC_REG_ACCESS";
43 + case HostCmd_CMD_RF_TX_PWR: return "RF_TX_PWR";
44 + case HostCmd_CMD_RF_ANTENNA: return "RF_ANTENNA";
45 + case HostCmd_CMD_802_11_DEAUTHENTICATE: return "DEAUTHENTICATE";
46 + case HostCmd_CMD_MAC_CONTROL: return "MAC_CONTROL";
47 + case HostCmd_CMD_802_11_AD_HOC_START: return "AD_HOC_START";
48 + case HostCmd_CMD_802_11_AD_HOC_JOIN: return "AD_HOC_JOIN";
49 + case HostCmd_CMD_802_11_AD_HOC_STOP: return "AD_HOC_STOP";
50 + case HostCmd_CMD_802_11_MAC_ADDRESS: return "MAC_ADDRESS";
51 + case HostCmd_CMD_802_11D_DOMAIN_INFO: return "DOMAIN_INFO";
52 + case HostCmd_CMD_802_11_KEY_MATERIAL: return "KEY_MATERIAL";
53 + case HostCmd_CMD_802_11_BG_SCAN_CONFIG: return "BG_SCAN_CONFIG";
54 + case HostCmd_CMD_802_11_BG_SCAN_QUERY: return "BG_SCAN_QUERY";
55 + case HostCmd_CMD_WMM_GET_STATUS: return "WMM_GET_STATUS";
56 + case HostCmd_CMD_802_11_SUBSCRIBE_EVENT: return "SUBSCRIBE_EVENT";
57 + case HostCmd_CMD_802_11_TX_RATE_QUERY: return "TX_RATE_QUERY";
58 + case HostCmd_CMD_802_11_IBSS_COALESCING_STATUS: return "IBSS_COALESCING_STATUS";
59 + case HostCmd_CMD_MEM_ACCESS: return "MEM_ACCESS";
60 + case HostCmd_CMD_CFG_DATA: return "CFG_DATA";
61 + case HostCmd_CMD_VERSION_EXT: return "VERSION_EXT";
62 + case HostCmd_CMD_MEF_CFG: return "MEF_CFG";
63 + case HostCmd_CMD_RSSI_INFO: return "RSSI_INFO";
64 + case HostCmd_CMD_FUNC_INIT: return "FUNC_INIT";
65 + case HostCmd_CMD_FUNC_SHUTDOWN: return "FUNC_SHUTDOWN";
66 + case HOST_CMD_APCMD_SYS_RESET: return "SYS_RESET";
67 + case HostCmd_CMD_UAP_SYS_CONFIG: return "UAP_SYS_CONFIG";
68 + case HostCmd_CMD_UAP_BSS_START: return "UAP_BSS_START";
69 + case HostCmd_CMD_UAP_BSS_STOP: return "UAP_BSS_STOP";
70 + case HOST_CMD_APCMD_STA_LIST: return "STA_LIST";
71 + case HostCmd_CMD_UAP_STA_DEAUTH: return "UAP_STA_DEAUTH";
72 + case HostCmd_CMD_11N_CFG: return "11N_CFG";
73 + case HostCmd_CMD_11N_ADDBA_REQ: return "ADDBA_REQ";
74 + case HostCmd_CMD_11N_ADDBA_RSP: return "ADDBA_RSP";
75 + case HostCmd_CMD_11N_DELBA: return "DELBA";
76 + case HostCmd_CMD_RECONFIGURE_TX_BUFF: return "RECONFIGURE_TX_BUFF";
77 + case HostCmd_CMD_CHAN_REPORT_REQUEST: return "CHAN_REPORT_REQUEST";
78 + case HostCmd_CMD_AMSDU_AGGR_CTRL: return "AMSDU_AGGR_CTRL";
79 + case HostCmd_CMD_TXPWR_CFG: return "TXPWR_CFG";
80 + case HostCmd_CMD_TX_RATE_CFG: return "TX_RATE_CFG";
81 + case HostCmd_CMD_ROBUST_COEX: return "ROBUST_COEX";
82 + case HostCmd_CMD_802_11_PS_MODE_ENH: return "PS_MODE_ENH";
83 + case HostCmd_CMD_802_11_HS_CFG_ENH: return "HS_CFG_ENH";
84 + case HostCmd_CMD_P2P_MODE_CFG: return "P2P_MODE_CFG";
85 + case HostCmd_CMD_CAU_REG_ACCESS: return "CAU_REG_ACCESS";
86 + case HostCmd_CMD_SET_BSS_MODE: return "SET_BSS_MODE";
87 + case HostCmd_CMD_PCIE_DESC_DETAILS: return "PCIE_DESC_DETAILS";
88 + case HostCmd_CMD_802_11_SCAN_EXT: return "SCAN_EXT";
89 + case HostCmd_CMD_COALESCE_CFG: return "COALESCE_CFG";
90 + case HostCmd_CMD_MGMT_FRAME_REG: return "MGMT_FRAME_REG";
91 + case HostCmd_CMD_REMAIN_ON_CHAN: return "REMAIN_ON_CHAN";
92 + case HostCmd_CMD_GTK_REKEY_OFFLOAD_CFG: return "GTK_REKEY_OFFLOAD_CFG";
93 + case HostCmd_CMD_11AC_CFG: return "11AC_CFG";
94 + case HostCmd_CMD_HS_WAKEUP_REASON: return "HS_WAKEUP_REASON";
95 + case HostCmd_CMD_TDLS_CONFIG: return "TDLS_CONFIG";
96 + case HostCmd_CMD_MC_POLICY: return "MC_POLICY";
97 + case HostCmd_CMD_TDLS_OPER: return "TDLS_OPER";
98 + case HostCmd_CMD_FW_DUMP_EVENT: return "FW_DUMP_EVENT";
99 + case HostCmd_CMD_SDIO_SP_RX_AGGR_CFG: return "SDIO_SP_RX_AGGR_CFG";
100 + case HostCmd_CMD_STA_CONFIGURE: return "STA_CONFIGURE";
101 + case HostCmd_CMD_CHAN_REGION_CFG: return "CHAN_REGION_CFG";
102 + case HostCmd_CMD_PACKET_AGGR_CTRL: return "PACKET_AGGR_CTRL";
103 + default: return "UNKNOWN";
104 + }
105 +}
106 +
107 /*
108 * This function initializes a command node.
109 *
110 @@ -205,8 +284,8 @@ static int mwifiex_dnld_cmd_to_fw(struct mwifiex_private *priv,
111 cmd_code != HostCmd_CMD_FUNC_SHUTDOWN &&
112 cmd_code != HostCmd_CMD_FUNC_INIT) {
113 mwifiex_dbg(adapter, ERROR,
114 - "DNLD_CMD: FW in reset state, ignore cmd %#x\n",
115 - cmd_code);
116 + "DNLD_CMD: FW in reset state, ignore cmd %s (%#x)\n",
117 + mwifiex_cmd_to_str(cmd_code), cmd_code);
118 mwifiex_recycle_cmd_node(adapter, cmd_node);
119 queue_work(adapter->workqueue, &adapter->main_work);
120 return -1;
121 @@ -660,8 +739,8 @@ int mwifiex_send_cmd(struct mwifiex_private *priv, u16 cmd_no,
122 /* Return error, since the command preparation failed */
123 if (ret) {
124 mwifiex_dbg(adapter, ERROR,
125 - "PREP_CMD: cmd %#x preparation failed\n",
126 - cmd_no);
127 + "PREP_CMD: cmd %s (%#x) preparation failed\n",
128 + mwifiex_cmd_to_str(cmd_no), cmd_no);
129 mwifiex_insert_cmd_to_free_q(adapter, cmd_node);
130 return -1;
131 }
132 @@ -900,8 +979,9 @@ int mwifiex_process_cmdresp(struct mwifiex_adapter *adapter)
133 if (adapter->hw_status == MWIFIEX_HW_STATUS_INITIALIZING) {
134 if (ret) {
135 mwifiex_dbg(adapter, ERROR,
136 - "%s: cmd %#x failed during\t"
137 - "initialization\n", __func__, cmdresp_no);
138 + "%s: cmd %s (%#x) failed during\t"
139 + "initialization\n", __func__,
140 + mwifiex_cmd_to_str(cmdresp_no), cmdresp_no);
141 mwifiex_init_fw_complete(adapter);
142 //if (adapter->if_ops.card_reset)
143 // adapter->if_ops.card_reset(adapter);
144 @@ -1266,8 +1346,8 @@ mwifiex_process_sleep_confirm_resp(struct mwifiex_adapter *adapter,
145
146 if (command != HostCmd_CMD_802_11_PS_MODE_ENH) {
147 mwifiex_dbg(adapter, ERROR,
148 - "%s: rcvd unexpected resp for cmd %#x, result = %x\n",
149 - __func__, command, result);
150 + "%s: rcvd unexpected resp for cmd %s (%#x), result = %x\n",
151 + __func__, mwifiex_cmd_to_str(command), command, result);
152 return;
153 }
154
155 diff --git a/drivers/net/wireless/marvell/mwifiex/main.h b/drivers/net/wireless/marvell/mwifiex/main.h
156 index 5923c5c14c8d..0d30f61a9d3c 100644
157 --- a/drivers/net/wireless/marvell/mwifiex/main.h
158 +++ b/drivers/net/wireless/marvell/mwifiex/main.h
159 @@ -1106,6 +1106,8 @@ void mwifiex_cancel_all_pending_cmd(struct mwifiex_adapter *adapter);
160 void mwifiex_cancel_pending_scan_cmd(struct mwifiex_adapter *adapter);
161 void mwifiex_cancel_scan(struct mwifiex_adapter *adapter);
162
163 +const char *mwifiex_cmd_to_str(u16 command);
164 +
165 void mwifiex_recycle_cmd_node(struct mwifiex_adapter *adapter,
166 struct cmd_ctrl_node *cmd_node);
167
168 diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
169 index 6b5d35d9e69f..ae6554f7b583 100644
170 --- a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
171 +++ b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
172 @@ -48,8 +48,9 @@ mwifiex_process_cmdresp_error(struct mwifiex_private *priv,
173 struct host_cmd_ds_802_11_ps_mode_enh *pm;
174
175 mwifiex_dbg(adapter, ERROR,
176 - "CMD_RESP: cmd %#x error, result=%#x\n",
177 - resp->command, resp->result);
178 + "CMD_RESP: cmd %s (%#x) error, result=%#x\n",
179 + mwifiex_cmd_to_str(le16_to_cpu(resp->command)),
180 + le16_to_cpu(resp->command), le16_to_cpu(resp->result));
181
182 if (adapter->curr_cmd->wait_q_enabled)
183 adapter->cmd_wait_q.status = -1;
184 diff --git a/drivers/net/wireless/marvell/mwifiex/uap_cmd.c b/drivers/net/wireless/marvell/mwifiex/uap_cmd.c
185 index 18e89777b784..29b8af55f522 100644
186 --- a/drivers/net/wireless/marvell/mwifiex/uap_cmd.c
187 +++ b/drivers/net/wireless/marvell/mwifiex/uap_cmd.c
188 @@ -806,7 +806,8 @@ int mwifiex_uap_prepare_cmd(struct mwifiex_private *priv, u16 cmd_no,
189 break;
190 default:
191 mwifiex_dbg(priv->adapter, ERROR,
192 - "PREP_CMD: unknown cmd %#x\n", cmd_no);
193 + "PREP_CMD: unknown cmd (%s) %#x\n",
194 + mwifiex_cmd_to_str(cmd_no), cmd_no);
195 return -1;
196 }
197
198 --
199 2.20.1
200