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;
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);
#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)