[PATCH 4/7] Move SEND_BEACON command to use hal.h

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


Signed-off-by: Eugene Krasnikov <k.eugene.e at gmail.com>
---
 hal.h |  6 +++---
 smd.c | 24 +++++++++++-------------
 smd.h | 14 --------------
 3 files changed, 14 insertions(+), 30 deletions(-)

diff --git a/hal.h b/hal.h
index d1658e9..5dd5af8 100644
--- a/hal.h
+++ b/hal.h
@@ -2825,7 +2825,7 @@ struct update_beacon_rsp_msg {
 	u32 status;
 };
 
-struct send_beacon_req_msg {
+struct wcn36xx_hal_send_beacon_req_msg {
 	struct wcn36xx_hal_msg_header header;
 
 	/* length of the template. */
@@ -2841,12 +2841,12 @@ struct send_beacon_req_msg {
 
 	/* P2P IE offset from the begining of the template */
 	u16 p2p_ie_offset;
-};
+} __packed;
 
 struct send_beacon_rsp_msg {
 	struct wcn36xx_hal_msg_header header;
 	u32 status;
-};
+} __packed;
 
 struct enable_radar_req_msg {
 	struct wcn36xx_hal_msg_header header;
diff --git a/smd.c b/smd.c
index bf7ffda..9b6a001 100644
--- a/smd.c
+++ b/smd.c
@@ -424,30 +424,28 @@ 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);
 }
 int wcn36xx_smd_send_beacon(struct wcn36xx *wcn, struct sk_buff *skb_beacon, u16 tim_off, u16 p2p_off){
-	struct wcn36xx_fw_msg_send_bcn_req msg_body;
-	struct wcn36xx_fw_msg_header msg_header;
-
-	INIT_MSG(msg_header, &msg_body, WCN36XX_FW_MSG_TYPE_SEND_BEACON_REQ)
+	struct wcn36xx_hal_send_beacon_req_msg msg_body;
+	INIT_HAL_MSG(msg_body, WCN36XX_HAL_SEND_BEACON_REQ)
 
 	// TODO need to find out why this is needed?
-	msg_body.beacon_len = skb_beacon->len+6;
-	msg_body.beacon_len2 = skb_beacon->len;
+	msg_body.beacon_length = skb_beacon->len + 6;
 
 	// TODO make this as a const
-	if (0x17C > msg_body.beacon_len) {
-		memcpy(&msg_body.beacon, skb_beacon->data, skb_beacon->len);
+	if (BEACON_TEMPLATE_SIZE > msg_body.beacon_length) {
+		memcpy(&msg_body.beacon, &skb_beacon->len, sizeof(u32));
+		memcpy(&(msg_body.beacon[4]), skb_beacon->data, skb_beacon->len);
 	} else {
-		wcn36xx_error("Beacon is to big: beacon size=%d", msg_body.beacon_len);
+		wcn36xx_error("Beacon is to big: beacon size=%d", msg_body.beacon_length);
 		return -ENOMEM;
 	}
-	memcpy(&msg_body.mac, &wcn->addresses[0], ETH_ALEN);
+	memcpy(&msg_body.bssid, &wcn->addresses[0], ETH_ALEN);
 
 	// TODO need to find out why this is needed?
 	msg_body.tim_ie_offset = tim_off+4;
 	msg_body.p2p_ie_offset = p2p_off;
-	PREPARE_BUF(wcn->smd_buf, msg_header, &msg_body)
+	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);
 };
 
 static void wcn36xx_smd_notify(void *data, unsigned event)
@@ -491,7 +489,7 @@ static void wcn36xx_smd_rsp_process (void *buf, size_t len)
 	case WCN36XX_FW_MSG_TYPE_EXIT_IMPS_RSP:
 	case WCN36XX_HAL_CONFIG_BSS_RSP:
 	case WCN36XX_HAL_CONFIG_STA_RSP:
-	case WCN36XX_FW_MSG_TYPE_SEND_BEACON_RSP:
+	case WCN36XX_HAL_SEND_BEACON_REQ:
 
 		if(wcn36xx_smd_rsp_status_check(buf, len)) {
 			wcn36xx_error("response failed");
diff --git a/smd.h b/smd.h
index 6ff1d4e..328ce04 100644
--- a/smd.h
+++ b/smd.h
@@ -33,9 +33,6 @@ enum wcn36xx_fw_msg_type {
 	WCN36XX_FW_MSG_TYPE_UPDATE_CFG_REQ		= 48,
 	WCN36XX_FW_MSG_TYPE_UPDATE_CFG_RSP		= 49,
 
-	WCN36XX_FW_MSG_TYPE_SEND_BEACON_REQ             = 63,
-	WCN36XX_FW_MSG_TYPE_SEND_BEACON_RSP             = 64,
-
 	WCN36XX_FW_MSG_TYPE_ENTER_IMPS_REQ		= 76,
 	WCN36XX_FW_MSG_TYPE_ENTER_IMPS_RSP		= 95,
 
@@ -98,17 +95,6 @@ struct wcn36xx_fw_msg_add_bcn_filter_req {
 	u32	phy_ch_state;
 } __packed;
 
-/* WCN36XX_FW_MSG_TYPE_SEND_BEACON_REQ */
-struct wcn36xx_fw_msg_send_bcn_req {
-	u32             beacon_len;
-	//TODO What is the purpose of having two len?
-	u32             beacon_len2;
-	u8              beacon[0x17C];
-	u8              mac[ETH_ALEN];
-	u32             tim_ie_offset;
-	u16             p2p_ie_offset;
-} __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