[PATCH 1/7] Move JOIN command to use hal.h

Eugene Krasnikov k.eugene.e at gmail.com
Thu May 2 13:00:18 EDT 2013


Signed-off-by: Eugene Krasnikov <k.eugene.e at gmail.com>
---
 hal.h |  4 ++--
 smd.c | 27 +++++++++++++--------------
 smd.h | 22 ----------------------
 3 files changed, 15 insertions(+), 38 deletions(-)

diff --git a/hal.h b/hal.h
index 9bb0ef3..009496e 100644
--- a/hal.h
+++ b/hal.h
@@ -1866,7 +1866,7 @@ struct wcn36xx_hal_join_req_msg {
 
 	/* Max TX power */
 	s8 max_tx_power;
-};
+} __packed;
 
 struct wcn36xx_hal_join_rsp_msg {
 	struct wcn36xx_hal_msg_header header;
@@ -1876,7 +1876,7 @@ struct wcn36xx_hal_join_rsp_msg {
 
 	/* HAL fills in the tx power used for mgmt frames in this field */
 	u8 tx_mgmt_power;
-};
+} __packed;
 
 struct post_assoc_req_msg {
 	struct wcn36xx_hal_msg_header header;
diff --git a/smd.c b/smd.c
index bf37d64..081082d 100644
--- a/smd.c
+++ b/smd.c
@@ -293,20 +293,20 @@ int wcn36xx_smd_exit_imps(struct wcn36xx *wcn)
 }
 int wcn36xx_smd_join(struct wcn36xx *wcn, u8 *bssid, u8 *vif, u8 ch)
 {
-	struct wcn36xx_fw_msg_join_req msg_body;
-	struct wcn36xx_fw_msg_header msg_header;
+	struct wcn36xx_hal_join_req_msg msg_body;
+
+	INIT_HAL_MSG(msg_body, WCN36XX_HAL_JOIN_REQ)
 
-	INIT_MSG(msg_header, &msg_body, WCN36XX_FW_MSG_TYPE_JOIN_REQ)
 
 	memcpy(&msg_body.bssid, bssid, ETH_ALEN);
-	memcpy(&msg_body.sta_mac, vif, ETH_ALEN);
-	msg_body.ch = ch;
-	msg_body.link_state = 1;
+	memcpy(&msg_body.self_sta_mac_addr, vif, ETH_ALEN);
+	msg_body.channel = ch;
+	msg_body.link_state = WCN36XX_HAL_LINK_PREASSOC_STATE;
 
-	msg_body.max_power = 0xbf;
-	PREPARE_BUF(wcn->smd_buf, msg_header, &msg_body)
+	msg_body.max_tx_power = 0xbf;
+	PREPARE_HAL_BUF(wcn->smd_buf, msg_body)
 
-	return wcn36xx_smd_send_and_wait(wcn, msg_header.msg_len);
+	return wcn36xx_smd_send_and_wait(wcn, msg_body.header.len);
 }
 int wcn36xx_smd_set_link_st(struct wcn36xx *wcn, u8 *bssid, u8 *sta_mac, enum wcn36xx_hal_link_state state)
 {
@@ -364,16 +364,15 @@ int wcn36xx_smd_config_sta(struct wcn36xx *wcn, u8 *bssid, u16 ass_id, u8 *sta_m
 }
 static int wcn36xx_smd_join_rsp(void *buf, size_t len)
 {
-	struct  wcn36xx_fw_msg_join_rsp * rsp;
+	struct wcn36xx_hal_join_rsp_msg * rsp;
 
 	if(wcn36xx_smd_rsp_status_check(buf, len))
 		return -EIO;
 
-	rsp = (struct wcn36xx_fw_msg_join_rsp *)
-		(buf + sizeof(struct wcn36xx_fw_msg_header));
+	rsp = (struct wcn36xx_hal_join_rsp_msg *)buf;
 
 	wcn36xx_info("Join stattus=%d, Power ver=%d",
-		rsp->status, rsp->power);
+		rsp->status, rsp->tx_mgmt_power);
 	return 0;
 }
 
@@ -537,7 +536,7 @@ static void wcn36xx_smd_rsp_process (void *buf, size_t len)
 			wcn36xx_error("response failed");
 		}
 		break;
-	case WCN36XX_FW_MSG_TYPE_JOIN_RSP:
+	case WCN36XX_HAL_JOIN_RSP:
 		wcn36xx_smd_join_rsp(buf, len);
 		break;
 	case WCN36XX_HAL_UPDATE_SCAN_PARAM_RSP:
diff --git a/smd.h b/smd.h
index ebebbbf..f1fdf89 100644
--- a/smd.h
+++ b/smd.h
@@ -32,9 +32,6 @@ enum wcn36xx_fw_msg_type {
 	WCN36XX_FW_MSG_TYPE_CONFIG_BSS_REQ              = 16,
 	WCN36XX_FW_MSG_TYPE_CONFIG_BSS_RSP              = 17,
 
-	WCN36XX_FW_MSG_TYPE_JOIN_REQ			= 20,
-	WCN36XX_FW_MSG_TYPE_JOIN_RSP			= 21,
-
 	WCN36XX_FW_MSG_TYPE_SET_LINK_ST_REQ		= 44,
 	WCN36XX_FW_MSG_TYPE_SET_LINK_ST_RSP		= 45,
 
@@ -118,8 +115,6 @@ struct wcn36xx_fw_msg_status_rsp {
 #define wcn36xx_fw_msg_nv_load_rsp 		wcn36xx_fw_msg_status_rsp
 #define wcn36xx_fw_msg_enter_imps_rsp 		wcn36xx_fw_msg_status_rsp
 #define wcn36xx_fw_msg_exit_imps_rsp 		wcn36xx_fw_msg_status_rsp
-#define wcn36xx_fw_msg_init_scan_rsp 		wcn36xx_fw_msg_status_rsp
-#define wcn36xx_fw_msg_end_scan_rsp 		wcn36xx_fw_msg_status_rsp
 #define wcn36xx_fw_msg_ex_caps_rsp 		wcn36xx_fw_msg_ex_caps_req
 
 /* WCN36XX_FW_MSG_TYPE_LOAD_NV_REQ */
@@ -275,23 +270,6 @@ struct wcn36xx_fw_msg_send_bcn_req {
 	u16             p2p_ie_offset;
 } __packed;
 
-
-/* WCN36XX_FW_MSG_TYPE_JOIN_REQ */
-struct wcn36xx_fw_msg_join_req {
-	u8	bssid[ETH_ALEN];
-	u8	ch;
-	u8	sta_mac[ETH_ALEN];
-	u8	power;
-	u32	chan_off;
-	u32	link_state;
-	u8	max_power;
-} __packed;
-
-struct wcn36xx_fw_msg_join_rsp {
-	u32	status;
-	u8	power;
-} __packed;
-
 struct wcn36xx_fw_msg_header {
 	enum wcn36xx_fw_msg_type	msg_type:16;
 	enum wcn36xx_fw_msg_ver		msg_ver:16;
-- 
1.7.11.3




More information about the wcn36xx mailing list