mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-22 13:54:57 +08:00
wcn36xx: enable the beaconing in mesh mode
Enable the beaconing in wnc36xx by tweaking the tim offset and force the use of AP-style beaconing. Otherwise, beaconing is not working. The tim offset is set to 256. Otherwise, this will overwrite mesh beacon submitted by mac80211. Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@cozybit.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
997b179ba3
commit
fa643ae2ce
@ -1151,14 +1151,14 @@ int wcn36xx_smd_config_bss(struct wcn36xx *wcn, struct ieee80211_vif *vif,
|
||||
/* STA */
|
||||
bss->oper_mode = 1;
|
||||
bss->wcn36xx_hal_persona = WCN36XX_HAL_STA_MODE;
|
||||
} else if (vif->type == NL80211_IFTYPE_AP) {
|
||||
} else if (vif->type == NL80211_IFTYPE_AP ||
|
||||
vif->type == NL80211_IFTYPE_MESH_POINT) {
|
||||
bss->bss_type = WCN36XX_HAL_INFRA_AP_MODE;
|
||||
|
||||
/* AP */
|
||||
bss->oper_mode = 0;
|
||||
bss->wcn36xx_hal_persona = WCN36XX_HAL_STA_SAP_MODE;
|
||||
} else if (vif->type == NL80211_IFTYPE_ADHOC ||
|
||||
vif->type == NL80211_IFTYPE_MESH_POINT) {
|
||||
} else if (vif->type == NL80211_IFTYPE_ADHOC) {
|
||||
bss->bss_type = WCN36XX_HAL_IBSS_MODE;
|
||||
|
||||
/* STA */
|
||||
@ -1309,7 +1309,11 @@ int wcn36xx_smd_send_beacon(struct wcn36xx *wcn, struct ieee80211_vif *vif,
|
||||
memcpy(msg_body.bssid, vif->addr, ETH_ALEN);
|
||||
|
||||
/* TODO need to find out why this is needed? */
|
||||
msg_body.tim_ie_offset = tim_off+4;
|
||||
if (vif->type == NL80211_IFTYPE_MESH_POINT)
|
||||
/* mesh beacon don't need this, so push further down */
|
||||
msg_body.tim_ie_offset = 256;
|
||||
else
|
||||
msg_body.tim_ie_offset = tim_off+4;
|
||||
msg_body.p2p_ie_offset = p2p_off;
|
||||
PREPARE_HAL_BUF(wcn->hal_buf, msg_body);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user