Commit 073401c3 authored by Martin Kaistra's avatar Martin Kaistra Committed by Kalle Valo
Browse files

wifi: rtl8xxxu: support multiple interfaces in bss_info_changed()



Call set_linktype and set_bssid now with correct port_num. Call
stop_tx_beacon only for port 0, as we don't support beacons on port 1.
Explicit changes to BEACON will only happen for AP type interfaces, so
we don't need an additional check there.

Signed-off-by: default avatarMartin Kaistra <martin.kaistra@linutronix.de>
Reviewed-by: default avatarPing-Ke Shih <pkshih@realtek.com>
Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20231222101442.626837-16-martin.kaistra@linutronix.de
parent eef55f15
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -4983,6 +4983,7 @@ static void
rtl8xxxu_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
			  struct ieee80211_bss_conf *bss_conf, u64 changed)
{
	struct rtl8xxxu_vif *rtlvif = (struct rtl8xxxu_vif *)vif->drv_priv;
	struct rtl8xxxu_priv *priv = hw->priv;
	struct device *dev = &priv->udev->dev;
	struct ieee80211_sta *sta;
@@ -4995,7 +4996,7 @@ rtl8xxxu_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
	if (changed & BSS_CHANGED_ASSOC) {
		dev_dbg(dev, "Changed ASSOC: %i!\n", vif->cfg.assoc);

		rtl8xxxu_set_linktype(priv, vif->type, 0);
		rtl8xxxu_set_linktype(priv, vif->type, rtlvif->port_num);

		if (vif->cfg.assoc) {
			u32 ramask;
@@ -5042,6 +5043,7 @@ rtl8xxxu_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,

			rtl8xxxu_write8(priv, REG_BCN_MAX_ERR, 0xff);

			if (rtlvif->port_num == 0)
				rtl8xxxu_stop_tx_beacon(priv);

			/* joinbss sequence */
@@ -5084,7 +5086,7 @@ rtl8xxxu_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,

	if (changed & BSS_CHANGED_BSSID) {
		dev_dbg(dev, "Changed BSSID!\n");
		rtl8xxxu_set_bssid(priv, bss_conf->bssid, 0);
		rtl8xxxu_set_bssid(priv, bss_conf->bssid, rtlvif->port_num);
	}

	if (changed & BSS_CHANGED_BASIC_RATES) {