wifi: rtw89: wow: enable MLD address for Magic packet wakeup

Under MLO connections, the original Magic Packet configuration
only supported Link Addresses for wakeup. Update the setting
to support both MLD Address and Link Addresses for wakeup process.

Signed-off-by: Chin-Yen Lee <timlee@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260325072130.41751-3-pkshih@realtek.com
This commit is contained in:
Chin-Yen Lee 2026-03-25 15:21:24 +08:00 committed by Ping-Ke Shih
parent 86a4c63c01
commit 4e7a7f5771
2 changed files with 8 additions and 1 deletions

View File

@ -9709,6 +9709,7 @@ int rtw89_fw_h2c_wow_wakeup_ctrl(struct rtw89_dev *rtwdev,
struct rtw89_vif_link *rtwvif_link,
bool enable)
{
struct ieee80211_vif *vif = rtwvif_link_to_vif(rtwvif_link);
struct rtw89_wow_param *rtw_wow = &rtwdev->wow;
struct rtw89_h2c_wow_wakeup_ctrl *h2c;
struct sk_buff *skb;
@ -9728,9 +9729,14 @@ int rtw89_fw_h2c_wow_wakeup_ctrl(struct rtw89_dev *rtwdev,
if (rtw_wow->pattern_cnt)
h2c->w0 |= le32_encode_bits(enable,
RTW89_H2C_WOW_WAKEUP_CTRL_W0_PATTERN_MATCH_ENABLE);
if (test_bit(RTW89_WOW_FLAG_EN_MAGIC_PKT, rtw_wow->flags))
if (test_bit(RTW89_WOW_FLAG_EN_MAGIC_PKT, rtw_wow->flags)) {
h2c->w0 |= le32_encode_bits(enable,
RTW89_H2C_WOW_WAKEUP_CTRL_W0_MAGIC_ENABLE);
if (ieee80211_vif_is_mld(vif))
h2c->w0 |= le32_encode_bits(enable,
RTW89_H2C_WOW_WAKEUP_CTRL_W0_MAGIC_MLD_ENABLE);
}
if (test_bit(RTW89_WOW_FLAG_EN_DISCONNECT, rtw_wow->flags))
h2c->w0 |= le32_encode_bits(enable,
RTW89_H2C_WOW_WAKEUP_CTRL_W0_DEAUTH_ENABLE);

View File

@ -2231,6 +2231,7 @@ struct rtw89_h2c_wow_wakeup_ctrl {
#define RTW89_H2C_WOW_WAKEUP_CTRL_W0_REKEYP_ENABLE BIT(5)
#define RTW89_H2C_WOW_WAKEUP_CTRL_W0_EAP_ENABLE BIT(6)
#define RTW89_H2C_WOW_WAKEUP_CTRL_W0_ALL_DATA_ENABLE BIT(7)
#define RTW89_H2C_WOW_WAKEUP_CTRL_W0_MAGIC_MLD_ENABLE BIT(8)
#define RTW89_H2C_WOW_WAKEUP_CTRL_W0_MAC_ID_EXT GENMASK(23, 16)
#define RTW89_H2C_WOW_WAKEUP_CTRL_W0_MAC_ID GENMASK(31, 24)