Message ID | 20240502022505.28966-2-pkshih@realtek.com |
---|---|
State | New |
Headers | show |
Series | wifi: rtw89: wow: support more exchange in WoWLAN mode | expand |
Ping-Ke Shih <pkshih@realtek.com> wrote: > From: Chin-Yen Lee <timlee@realtek.com> > > 802.11be WiFi chips need a RFK (RF calibration) notify H2C command after > downloading WoWLAN firmware to make sure RF TX/RX work fine when leaving > power save mode, so add it to correct RF TX/RX in WoWLAN mode. > > Signed-off-by: Chin-Yen Lee <timlee@realtek.com> > Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> 12 patch(es) applied to rtw-next branch of rtw.git, thanks. a79264e8c7d3 wifi: rtw89: wow: send RFK pre-nofity H2C command in WoWLAN mode baaf806e4632 wifi: rtw89: wow: refine WoWLAN flows of HCI interrupts and low power mode 92790c4e50d2 wifi: rtw89: wow: parsing Auth Key Management from associate request 803a96f477be wifi: rtw89: wow: prepare PTK GTK info from mac80211 9076bf365e13 wifi: rtw89: use struct to access firmware command h2c_dctl_sec_cam_v1 786737b6b708 wifi: rtw89: use struct to fill H2C of WoWLAN global configuration ed9a3c0d4dd9 wifi: rtw89: wow: construct EAPoL packet for GTK rekey offload 0291633afef8 wifi: rtw89: wow: add GTK rekey feature related H2C commands ff53fce5c78b wifi: rtw89: wow: update latest PTK GTK info to mac80211 after resume 940cd99625de wifi: rtw89: wow: support 802.11w PMF IGTK rekey e765370fdced wifi: rtw89: wow: support WEP cipher on WoWLAN 58ed86e1666b wifi: rtw89: wow: add ARP offload feature --- https://github.com/pkshih/rtw.git
diff --git a/drivers/net/wireless/realtek/rtw89/wow.c b/drivers/net/wireless/realtek/rtw89/wow.c index ccad026defb5..f7e96fcbbaba 100644 --- a/drivers/net/wireless/realtek/rtw89/wow.c +++ b/drivers/net/wireless/realtek/rtw89/wow.c @@ -454,6 +454,7 @@ static int rtw89_wow_check_fw_status(struct rtw89_dev *rtwdev, bool wow_enable) static int rtw89_wow_swap_fw(struct rtw89_dev *rtwdev, bool wow) { enum rtw89_fw_type fw_type = wow ? RTW89_FW_WOWLAN : RTW89_FW_NORMAL; + enum rtw89_chip_gen chip_gen = rtwdev->chip->chip_gen; struct rtw89_wow_param *rtw_wow = &rtwdev->wow; struct ieee80211_vif *wow_vif = rtw_wow->wow_vif; struct rtw89_vif *rtwvif = (struct rtw89_vif *)wow_vif->drv_priv; @@ -519,6 +520,9 @@ static int rtw89_wow_swap_fw(struct rtw89_dev *rtwdev, bool wow) rtw89_chip_cfg_txpwr_ul_tb_offset(rtwdev, wow_vif); } + if (chip_gen == RTW89_CHIP_BE) + rtw89_phy_rfk_pre_ntfy_and_wait(rtwdev, RTW89_PHY_0, 5); + rtw89_mac_hw_mgnt_sec(rtwdev, wow); rtw89_hci_enable_intr(rtwdev);