Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/openwrt/mt76.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Wang <sean.wang@mediatek.com>2022-11-11 00:23:44 +0300
committerFelix Fietkau <nbd@nbd.name>2022-11-11 14:53:42 +0300
commit7a2b1a13b1b041144a6282d7355b5df739c6ad01 (patch)
tree79414e00d300f10e7e604381006feb5e2d8166e4
parentc7db15903e5c1270517aee22315e32dd04bbaaa1 (diff)
wifi: mt76: mt7921: add chanctx parameter to mt76_connac_mcu_uni_add_bss signature
Add a chanctx parameter to mt76_connac_mcu_uni_add_bss signature to allow the firmware binds the BSS into the specific channel context. Signed-off-by: Sean Wang <sean.wang@mediatek.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--mt7615/mcu.c2
-rw-r--r--mt76_connac_mcu.c7
-rw-r--r--mt76_connac_mcu.h3
-rw-r--r--mt7921/mac.c2
-rw-r--r--mt7921/main.c10
5 files changed, 14 insertions, 10 deletions
diff --git a/mt7615/mcu.c b/mt7615/mcu.c
index e175b20c..81579a14 100644
--- a/mt7615/mcu.c
+++ b/mt7615/mcu.c
@@ -1119,7 +1119,7 @@ mt7615_mcu_uni_add_bss(struct mt7615_phy *phy, struct ieee80211_vif *vif,
struct mt7615_vif *mvif = (struct mt7615_vif *)vif->drv_priv;
return mt76_connac_mcu_uni_add_bss(phy->mt76, vif, &mvif->sta.wcid,
- enable);
+ enable, NULL);
}
static inline int
diff --git a/mt76_connac_mcu.c b/mt76_connac_mcu.c
index 3c8f7859..c8660fb3 100644
--- a/mt76_connac_mcu.c
+++ b/mt76_connac_mcu.c
@@ -1397,10 +1397,11 @@ EXPORT_SYMBOL_GPL(mt76_connac_mcu_uni_set_chctx);
int mt76_connac_mcu_uni_add_bss(struct mt76_phy *phy,
struct ieee80211_vif *vif,
struct mt76_wcid *wcid,
- bool enable)
+ bool enable,
+ struct ieee80211_chanctx_conf *ctx)
{
struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
- struct cfg80211_chan_def *chandef = &phy->chandef;
+ struct cfg80211_chan_def *chandef = ctx ? &ctx->def : &phy->chandef;
enum nl80211_band band = chandef->chan->band;
struct mt76_dev *mdev = phy->dev;
struct {
@@ -1517,7 +1518,7 @@ int mt76_connac_mcu_uni_add_bss(struct mt76_phy *phy,
return err;
}
- return mt76_connac_mcu_uni_set_chctx(phy, mvif, NULL);
+ return mt76_connac_mcu_uni_set_chctx(phy, mvif, ctx);
}
EXPORT_SYMBOL_GPL(mt76_connac_mcu_uni_add_bss);
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
index b7e29b17..bc1c47da 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
@@ -1742,7 +1742,8 @@ int mt76_connac_mcu_uni_set_chctx(struct mt76_phy *phy,
int mt76_connac_mcu_uni_add_bss(struct mt76_phy *phy,
struct ieee80211_vif *vif,
struct mt76_wcid *wcid,
- bool enable);
+ bool enable,
+ struct ieee80211_chanctx_conf *ctx);
int mt76_connac_mcu_sta_cmd(struct mt76_phy *phy,
struct mt76_sta_cmd_info *info);
void mt76_connac_mcu_beacon_loss_iter(void *priv, u8 *mac,
diff --git a/mt7921/mac.c b/mt7921/mac.c
index 25c61e92..7b15193c 100644
--- a/mt7921/mac.c
+++ b/mt7921/mac.c
@@ -866,7 +866,7 @@ mt7921_vif_connect_iter(void *priv, u8 *mac,
if (vif->type == NL80211_IFTYPE_AP) {
mt76_connac_mcu_uni_add_bss(dev->phy.mt76, vif, &mvif->sta.wcid,
- true);
+ true, NULL);
mt7921_mcu_sta_update(dev, NULL, vif, true,
MT76_STA_INFO_STATE_NONE);
mt7921_mcu_uni_add_beacon_offload(dev, hw, vif, true);
diff --git a/mt7921/main.c b/mt7921/main.c
index 8c0c6890..00085b12 100644
--- a/mt7921/main.c
+++ b/mt7921/main.c
@@ -746,7 +746,7 @@ void mt7921_mac_sta_assoc(struct mt76_dev *mdev, struct ieee80211_vif *vif,
if (vif->type == NL80211_IFTYPE_STATION && !sta->tdls)
mt76_connac_mcu_uni_add_bss(&dev->mphy, vif, &mvif->sta.wcid,
- true);
+ true, NULL);
mt7921_mac_wtbl_update(dev, msta->wcid.idx,
MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
@@ -778,7 +778,8 @@ void mt7921_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
ewma_rssi_init(&mvif->rssi);
if (!sta->tdls)
mt76_connac_mcu_uni_add_bss(&dev->mphy, vif,
- &mvif->sta.wcid, false);
+ &mvif->sta.wcid, false,
+ NULL);
}
spin_lock_bh(&dev->sta_poll_lock);
@@ -1532,7 +1533,7 @@ mt7921_start_ap(struct ieee80211_hw *hw,
mt7921_mutex_acquire(dev);
err = mt76_connac_mcu_uni_add_bss(phy->mt76, vif, &mvif->sta.wcid,
- true);
+ true, NULL);
if (err)
goto out;
@@ -1563,7 +1564,8 @@ mt7921_stop_ap(struct ieee80211_hw *hw,
if (err)
goto out;
- mt76_connac_mcu_uni_add_bss(phy->mt76, vif, &mvif->sta.wcid, false);
+ mt76_connac_mcu_uni_add_bss(phy->mt76, vif, &mvif->sta.wcid, false,
+ NULL);
out:
mt7921_mutex_release(dev);