[PATCH 06/13] smd: add debug messages for sta and bss config responses
Kalle Valo
kvalo at qca.qualcomm.com
Thu May 23 07:07:05 EDT 2013
So that we can better track what's happening in firmware.
Signed-off-by: Kalle Valo <kvalo at qca.qualcomm.com>
---
hal.h | 3 ++-
smd.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 61 insertions(+), 3 deletions(-)
diff --git a/hal.h b/hal.h
index a2eb4fb..6d0ba2f 100644
--- a/hal.h
+++ b/hal.h
@@ -1313,7 +1313,8 @@ struct config_sta_rsp_params {
struct wcn36xx_hal_config_sta_rsp_msg {
struct wcn36xx_hal_msg_header header;
- struct config_sta_rsp_params configStaRspParams;
+
+ struct config_sta_rsp_params params;
} __packed;
/* Delete STA Request message */
diff --git a/smd.c b/smd.c
index 74814a1..ea1662a 100644
--- a/smd.c
+++ b/smd.c
@@ -448,6 +448,32 @@ int wcn36xx_smd_config_sta(struct wcn36xx *wcn, u8 *bssid, u16 ass_id, u8 *sta_m
return wcn36xx_smd_send_and_wait(wcn, msg_body.header.len);
}
+
+static int wcn36xx_smd_config_sta_rsp(struct wcn36xx *wcn, void *buf, size_t len)
+{
+ struct wcn36xx_hal_config_sta_rsp_msg *rsp;
+ struct config_sta_rsp_params *params;
+
+ if (len < sizeof(*rsp))
+ return -EINVAL;
+
+ rsp = (struct wcn36xx_hal_config_sta_rsp_msg *)buf;
+ params = &rsp->params;
+
+ if (params->status != WCN36XX_FW_MSG_RESULT_SUCCESS) {
+ wcn36xx_warn("hal config sta response failure: %d",
+ params->status);
+ return -EIO;
+ }
+
+ wcn36xx_dbg(WCN36XX_DBG_HAL,
+ "hal config sta rsp status %d sta_index %d bssid_index %d p2p %d",
+ params->status, params->sta_index, params->bssid_index,
+ params->p2p);
+
+ return 0;
+}
+
static int wcn36xx_smd_join_rsp(void *buf, size_t len)
{
struct wcn36xx_hal_join_rsp_msg * rsp;
@@ -633,6 +659,33 @@ int wcn36xx_smd_config_bss(struct wcn36xx *wcn, bool sta_mode, u8 *bssid, u8 upd
return wcn36xx_smd_send_and_wait(wcn, msg_body.header.len);
}
+
+static int wcn36xx_smd_config_bss_rsp(struct wcn36xx *wcn, void *buf, size_t len)
+{
+ struct wcn36xx_hal_config_bss_rsp_msg *rsp;
+ struct wcn36xx_hal_config_bss_rsp_params *params;
+
+ if (len < sizeof(*rsp))
+ return -EINVAL;
+
+ rsp = (struct wcn36xx_hal_config_bss_rsp_msg *)buf;
+ params = &rsp->bss_rsp_params;
+
+ if (params->status != WCN36XX_FW_MSG_RESULT_SUCCESS) {
+ wcn36xx_warn("hal config bss response failure: %d",
+ params->status);
+ return -EIO;
+ }
+
+ wcn36xx_dbg(WCN36XX_DBG_HAL,
+ "hal config bss rsp status %d bss_idx %d sta_idx %d self_idx %d bcast_idx %d mac %pM power %d",
+ params->status, params->bss_index, params->bss_sta_index,
+ params->bss_self_sta_index, params->bss_bcast_sta_idx,
+ params->mac, params->tx_mgmt_power);
+
+ return 0;
+}
+
int wcn36xx_smd_delete_bss(struct wcn36xx *wcn)
{
struct wcn36xx_hal_delete_bss_req_msg msg_body;
@@ -738,6 +791,12 @@ static void wcn36xx_smd_rsp_process(struct wcn36xx *wcn, void *buf, size_t len)
case WCN36XX_HAL_START_RSP:
wcn36xx_smd_start_rsp(wcn, buf, len);
break;
+ case WCN36XX_HAL_CONFIG_STA_RSP:
+ wcn36xx_smd_config_sta_rsp(wcn, buf, len);
+ break;
+ case WCN36XX_HAL_CONFIG_BSS_RSP:
+ wcn36xx_smd_config_bss_rsp(wcn, buf, len);
+ break;
case WCN36XX_HAL_STOP_RSP:
case WCN36XX_HAL_ADD_STA_SELF_RSP:
case WCN36XX_HAL_DEL_STA_SELF_RSP:
@@ -747,9 +806,7 @@ static void wcn36xx_smd_rsp_process(struct wcn36xx *wcn, void *buf, size_t len)
case WCN36XX_HAL_END_SCAN_RSP:
case WCN36XX_HAL_FINISH_SCAN_RSP:
case WCN36XX_HAL_DOWNLOAD_NV_RSP:
- case WCN36XX_HAL_CONFIG_BSS_RSP:
case WCN36XX_HAL_DELETE_BSS_RSP:
- case WCN36XX_HAL_CONFIG_STA_RSP:
case WCN36XX_HAL_SEND_BEACON_RSP:
case WCN36XX_HAL_SET_LINK_ST_RSP:
case WCN36XX_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP:
More information about the wcn36xx
mailing list