[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