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>
This commit is contained in:
parent
0f9edcdd88
commit
25d217d6e0
|
@ -2884,11 +2884,14 @@ struct update_beacon_rsp_msg {
|
||||||
struct wcn36xx_hal_send_beacon_req_msg {
|
struct wcn36xx_hal_send_beacon_req_msg {
|
||||||
struct wcn36xx_hal_msg_header header;
|
struct wcn36xx_hal_msg_header header;
|
||||||
|
|
||||||
|
/* length of the template + 6. Only qcom knows why */
|
||||||
|
u32 beacon_length6;
|
||||||
|
|
||||||
/* length of the template. */
|
/* length of the template. */
|
||||||
u32 beacon_length;
|
u32 beacon_length;
|
||||||
|
|
||||||
/* Beacon data. */
|
/* Beacon data. */
|
||||||
u8 beacon[BEACON_TEMPLATE_SIZE];
|
u8 beacon[BEACON_TEMPLATE_SIZE - sizeof(u32)];
|
||||||
|
|
||||||
u8 bssid[ETH_ALEN];
|
u8 bssid[ETH_ALEN];
|
||||||
|
|
||||||
|
|
|
@ -1380,19 +1380,17 @@ int wcn36xx_smd_send_beacon(struct wcn36xx *wcn, struct ieee80211_vif *vif,
|
||||||
mutex_lock(&wcn->hal_mutex);
|
mutex_lock(&wcn->hal_mutex);
|
||||||
INIT_HAL_MSG(msg_body, WCN36XX_HAL_SEND_BEACON_REQ);
|
INIT_HAL_MSG(msg_body, WCN36XX_HAL_SEND_BEACON_REQ);
|
||||||
|
|
||||||
/* TODO need to find out why this is needed? */
|
msg_body.beacon_length = skb_beacon->len;
|
||||||
msg_body.beacon_length = skb_beacon->len + 6;
|
/* TODO need to find out why + 6 is needed */
|
||||||
|
msg_body.beacon_length6 = msg_body.beacon_length + 6;
|
||||||
|
|
||||||
if (BEACON_TEMPLATE_SIZE > msg_body.beacon_length) {
|
if (msg_body.beacon_length > BEACON_TEMPLATE_SIZE) {
|
||||||
memcpy(&msg_body.beacon, &skb_beacon->len, sizeof(u32));
|
|
||||||
memcpy(&(msg_body.beacon[4]), skb_beacon->data,
|
|
||||||
skb_beacon->len);
|
|
||||||
} else {
|
|
||||||
wcn36xx_err("Beacon is to big: beacon size=%d\n",
|
wcn36xx_err("Beacon is to big: beacon size=%d\n",
|
||||||
msg_body.beacon_length);
|
msg_body.beacon_length);
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
memcpy(msg_body.beacon, skb_beacon->data, skb_beacon->len);
|
||||||
memcpy(msg_body.bssid, vif->addr, ETH_ALEN);
|
memcpy(msg_body.bssid, vif->addr, ETH_ALEN);
|
||||||
|
|
||||||
/* TODO need to find out why this is needed? */
|
/* TODO need to find out why this is needed? */
|
||||||
|
|
Loading…
Reference in New Issue