[PATCH] wifi: mt76: mt7915: enable BSS_CHANGED_MU_GROUPS support
Kalle Valo
kvalo at kernel.org
Wed Aug 2 21:58:07 PDT 2023
Ryder Lee <ryder.lee at mediatek.com> writes:
> The Group ID Management frame is an Action frame of category VHT.
> It is transmitted by the AP to assign or change the user position
> of a STA for one or more group IDs.
>
> Also, sniffer can use a given group id to monitor STA that belongs
> to that group.
>
> Notify underlying driver of changes via BSS_CHANGED_MU_GROUPS.
>
> Signed-off-by: Ryder Lee <ryder.lee at mediatek.com>
> Change-Id: I3d2f5508a2b6eb7c929c3997c31a9285713c8bea
No Change-Id, please.
> --- a/drivers/net/wireless/mediatek/mt76/mt7915/main.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt7915/main.c
> @@ -593,6 +593,34 @@ mt7915_update_bss_color(struct ieee80211_hw *hw,
> }
> }
>
> +static void
> +mt7915_update_mu_group(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
> + struct ieee80211_bss_conf *info)
> +{
> + struct mt7915_phy *phy = mt7915_hw_phy(hw);
> + struct mt7915_dev *dev = mt7915_hw_dev(hw);
> + u8 i, band = phy->mt76->band_idx;
> + u32 *mu;
> +
> + mu = (u32 *)info->mu_group.membership;
Is this safe on big endian?
> + for (i = 0; i < WLAN_MEMBERSHIP_LEN / sizeof(*mu); i++) {
> + if (is_mt7916(&dev->mt76))
> + mt76_wr(dev, MT_WF_PHY_RX_GID_TAB_VLD_MT7916(band, i),
> + mu[i]);
> + else
> + mt76_wr(dev, MT_WF_PHY_RX_GID_TAB_VLD(band, i), mu[i]);
> + }
> +
> + mu = (u32 *)info->mu_group.position;
And this?
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
More information about the Linux-mediatek
mailing list