aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/wcn36xx
diff options
context:
space:
mode:
authorPontus Fuchs <pontus.fuchs@gmail.com>2016-04-19 01:00:39 -0400
committerKalle Valo <kvalo@qca.qualcomm.com>2016-04-25 13:37:03 -0400
commit25d217d6e0723481bf90db1d8be02ab475d16002 (patch)
treeeebe69b11487272608c36da9ced24d9f2b3fe0bd /drivers/net/wireless/ath/wcn36xx
parent0f9edcdd88a993914fa1d1dc369b35dc503979db (diff)
wcn36xx: Clean up wcn36xx_smd_send_beacon
Needed for coming improvements. No functional changes. Signed-off-by: Pontus Fuchs <pontus.fuchs@gmail.com> [bjorn: restored BEACON_TEMPLATE_SIZE define to 0x180] Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/wcn36xx')
-rw-r--r--drivers/net/wireless/ath/wcn36xx/hal.h5
-rw-r--r--drivers/net/wireless/ath/wcn36xx/smd.c12
2 files changed, 9 insertions, 8 deletions
diff --git a/drivers/net/wireless/ath/wcn36xx/hal.h b/drivers/net/wireless/ath/wcn36xx/hal.h
index b947de0fb2e5..d713204f755d 100644
--- a/drivers/net/wireless/ath/wcn36xx/hal.h
+++ b/drivers/net/wireless/ath/wcn36xx/hal.h
@@ -2884,11 +2884,14 @@ struct update_beacon_rsp_msg {
2884struct wcn36xx_hal_send_beacon_req_msg { 2884struct wcn36xx_hal_send_beacon_req_msg {
2885 struct wcn36xx_hal_msg_header header; 2885 struct wcn36xx_hal_msg_header header;
2886 2886
2887 /* length of the template + 6. Only qcom knows why */
2888 u32 beacon_length6;
2889
2887 /* length of the template. */ 2890 /* length of the template. */
2888 u32 beacon_length; 2891 u32 beacon_length;
2889 2892
2890 /* Beacon data. */ 2893 /* Beacon data. */
2891 u8 beacon[BEACON_TEMPLATE_SIZE]; 2894 u8 beacon[BEACON_TEMPLATE_SIZE - sizeof(u32)];
2892 2895
2893 u8 bssid[ETH_ALEN]; 2896 u8 bssid[ETH_ALEN];
2894 2897
diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index 74f56a81ad9a..ff3ed2461a69 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -1380,19 +1380,17 @@ int wcn36xx_smd_send_beacon(struct wcn36xx *wcn, struct ieee80211_vif *vif,
1380 mutex_lock(&wcn->hal_mutex); 1380 mutex_lock(&wcn->hal_mutex);
1381 INIT_HAL_MSG(msg_body, WCN36XX_HAL_SEND_BEACON_REQ); 1381 INIT_HAL_MSG(msg_body, WCN36XX_HAL_SEND_BEACON_REQ);
1382 1382
1383 /* TODO need to find out why this is needed? */ 1383 msg_body.beacon_length = skb_beacon->len;
1384 msg_body.beacon_length = skb_beacon->len + 6; 1384 /* TODO need to find out why + 6 is needed */
1385 msg_body.beacon_length6 = msg_body.beacon_length + 6;
1385 1386
1386 if (BEACON_TEMPLATE_SIZE > msg_body.beacon_length) { 1387 if (msg_body.beacon_length > BEACON_TEMPLATE_SIZE) {
1387 memcpy(&msg_body.beacon, &skb_beacon->len, sizeof(u32));
1388 memcpy(&(msg_body.beacon[4]), skb_beacon->data,
1389 skb_beacon->len);
1390 } else {
1391 wcn36xx_err("Beacon is to big: beacon size=%d\n", 1388 wcn36xx_err("Beacon is to big: beacon size=%d\n",
1392 msg_body.beacon_length); 1389 msg_body.beacon_length);
1393 ret = -ENOMEM; 1390 ret = -ENOMEM;
1394 goto out; 1391 goto out;
1395 } 1392 }
1393 memcpy(msg_body.beacon, skb_beacon->data, skb_beacon->len);
1396 memcpy(msg_body.bssid, vif->addr, ETH_ALEN); 1394 memcpy(msg_body.bssid, vif->addr, ETH_ALEN);
1397 1395
1398 /* TODO need to find out why this is needed? */ 1396 /* TODO need to find out why this is needed? */