Update beacon content if TIM bitmap maintained by mac80211 is changed.
Signed-off-by: Martin Kaistra <[email protected]>
---
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
index 404fa6e322f58..f8380a2d51ae2 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
@@ -4438,6 +4438,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)
{
@@ -7133,6 +7143,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,
--
2.30.2
> -----Original Message-----
> From: Martin Kaistra <[email protected]>
> Sent: Thursday, March 23, 2023 1:19 AM
> To: [email protected]
> Cc: Jes Sorensen <[email protected]>; Kalle Valo <[email protected]>; Ping-Ke Shih
> <[email protected]>; Bitterblue Smith <[email protected]>; Sebastian Andrzej Siewior
> <[email protected]>
> Subject: [RFC PATCH 04/14] wifi: rtl8xxxu: Add set_tim() callback
>
> Update beacon content if TIM bitmap maintained by mac80211 is changed.
>
> Signed-off-by: Martin Kaistra <[email protected]>
Reviewed-by: Ping-Ke Shih <[email protected]>
> ---
> drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
> b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
> index 404fa6e322f58..f8380a2d51ae2 100644
> --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
> +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
> @@ -4438,6 +4438,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)
> {
> @@ -7133,6 +7143,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,
> --
> 2.30.2