wifi: rtl8xxxu: Add set_tim() callback
authorMartin Kaistra <martin.kaistra@linutronix.de>
Fri, 28 Apr 2023 15:08:19 +0000 (17:08 +0200)
committerKalle Valo <kvalo@kernel.org>
Fri, 5 May 2023 07:30:11 +0000 (10:30 +0300)
Update beacon content if TIM bitmap maintained by mac80211 is changed.

Signed-off-by: Martin Kaistra <martin.kaistra@linutronix.de>
Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230428150833.218605-5-martin.kaistra@linutronix.de
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c

index a152e5c9ea6910628cfa8931038e16cf70ae8498..37794739c71c8aa8f8be3c44877bcefcb1a6fc43 100644 (file)
@@ -4503,6 +4503,16 @@ int rtl8xxxu_get_antenna(struct ieee80211_hw *hw, u32 *tx_ant, u32 *rx_ant)
        return 0;
 }
 
+static int rtl8xxxu_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta,
+                           bool set)
+{
+       struct rtl8xxxu_priv *priv = hw->priv;
+
+       schedule_work(&priv->update_beacon_work);
+
+       return 0;
+}
+
 static void rtl8xxxu_sw_scan_start(struct ieee80211_hw *hw,
                                   struct ieee80211_vif *vif, const u8 *mac)
 {
@@ -7194,6 +7204,7 @@ static const struct ieee80211_ops rtl8xxxu_ops = {
        .ampdu_action = rtl8xxxu_ampdu_action,
        .sta_statistics = rtl8xxxu_sta_statistics,
        .get_antenna = rtl8xxxu_get_antenna,
+       .set_tim = rtl8xxxu_set_tim,
 };
 
 static int rtl8xxxu_parse_usb(struct rtl8xxxu_priv *priv,