Skip to content

Commit 982f4a2

Browse files
Po-Hao HuangKalle Valo
authored andcommitted
wifi: rtw88: refine reserved page flow for AP mode
Only gather reserved pages from AP interface after it has started. Or else ieee80211_beacon_get_*() returns NULL and causes other VIFs' reserved pages fail to download. Update location of current reserved page after beacon renews so offsets changed by beacon can be recognized. Signed-off-by: Po-Hao Huang <phhuang@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20230414121300.17900-1-pkshih@realtek.com
1 parent 5ec6912 commit 982f4a2

2 files changed

Lines changed: 6 additions & 0 deletions

File tree

drivers/net/wireless/realtek/rtw88/fw.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1393,6 +1393,10 @@ static void rtw_build_rsvd_page_iter(void *data, u8 *mac,
13931393
struct rtw_vif *rtwvif = (struct rtw_vif *)vif->drv_priv;
13941394
struct rtw_rsvd_page *rsvd_pkt;
13951395

1396+
/* AP not yet started, don't gather its rsvd pages */
1397+
if (vif->type == NL80211_IFTYPE_AP && !rtwdev->ap_active)
1398+
return;
1399+
13961400
list_for_each_entry(rsvd_pkt, &rtwvif->rsvd_page_list, vif_list) {
13971401
if (rsvd_pkt->type == RSVD_BEACON)
13981402
list_add(&rsvd_pkt->build_list,
@@ -1614,6 +1618,7 @@ void rtw_fw_update_beacon_work(struct work_struct *work)
16141618

16151619
mutex_lock(&rtwdev->mutex);
16161620
rtw_fw_download_rsvd_page(rtwdev);
1621+
rtw_send_rsvd_page_h2c(rtwdev);
16171622
mutex_unlock(&rtwdev->mutex);
16181623
}
16191624

drivers/net/wireless/realtek/rtw88/mac80211.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,7 @@ static void rtw_ops_bss_info_changed(struct ieee80211_hw *hw,
417417
if (changed & BSS_CHANGED_BEACON) {
418418
rtw_set_dtim_period(rtwdev, conf->dtim_period);
419419
rtw_fw_download_rsvd_page(rtwdev);
420+
rtw_send_rsvd_page_h2c(rtwdev);
420421
}
421422

422423
if (changed & BSS_CHANGED_BEACON_ENABLED) {

0 commit comments

Comments
 (0)