wifi: mt76: mt7996: prepare mt7996_mcu_set_timing for MLO support
authorFelix Fietkau <nbd@nbd.name>
Thu, 2 Jan 2025 16:35:02 +0000 (17:35 +0100)
committerFelix Fietkau <nbd@nbd.name>
Tue, 14 Jan 2025 12:42:29 +0000 (13:42 +0100)
Pass in struct ieee80211_bss_conf in order to use link specific data.

Link: https://patch.msgid.link/20250102163508.52945-18-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7996/main.c
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h

index a1f1dee56dea35a914549032dd9d31c64ef3e8ed..95d915045cf730f51cf77c3d3e679e8cb2ae2c3c 100644 (file)
@@ -643,7 +643,7 @@ static void mt7996_bss_info_changed(struct ieee80211_hw *hw,
 
                if (slottime != phy->slottime) {
                        phy->slottime = slottime;
-                       mt7996_mcu_set_timing(phy, vif);
+                       mt7996_mcu_set_timing(phy, vif, info);
                }
        }
 
index e694edf4fa9bcde89776f6133d70cf9ae92e16cd..e9d449bd55ef373db6763e66d413c1ce21588ce1 100644 (file)
@@ -1108,13 +1108,14 @@ out:
                                     MCU_WMWA_UNI_CMD(BSS_INFO_UPDATE), true);
 }
 
-int mt7996_mcu_set_timing(struct mt7996_phy *phy, struct ieee80211_vif *vif)
+int mt7996_mcu_set_timing(struct mt7996_phy *phy, struct ieee80211_vif *vif,
+                         struct ieee80211_bss_conf *link_conf)
 {
-       struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
        struct mt7996_dev *dev = phy->dev;
+       struct mt76_vif_link *mlink = mt76_vif_conf_link(&dev->mt76, vif, link_conf);
        struct sk_buff *skb;
 
-       skb = __mt7996_mcu_alloc_bss_req(&dev->mt76, &mvif->deflink.mt76,
+       skb = __mt7996_mcu_alloc_bss_req(&dev->mt76, mlink,
                                         MT7996_BSS_UPDATE_MAX_SIZE);
        if (IS_ERR(skb))
                return PTR_ERR(skb);
index 2b5c7cb7e8170dbaad84bd68150bfe7bbd0fee2e..604b67ea12e4487b631bcdc6191e20989275281f 100644 (file)
@@ -562,7 +562,8 @@ int mt7996_mcu_set_radar_th(struct mt7996_dev *dev, int index,
                            const struct mt7996_dfs_pattern *pattern);
 int mt7996_mcu_set_radio_en(struct mt7996_phy *phy, bool enable);
 int mt7996_mcu_set_rts_thresh(struct mt7996_phy *phy, u32 val);
-int mt7996_mcu_set_timing(struct mt7996_phy *phy, struct ieee80211_vif *vif);
+int mt7996_mcu_set_timing(struct mt7996_phy *phy, struct ieee80211_vif *vif,
+                         struct ieee80211_bss_conf *link_conf);
 int mt7996_mcu_get_chan_mib_info(struct mt7996_phy *phy, bool chan_switch);
 int mt7996_mcu_get_temperature(struct mt7996_phy *phy);
 int mt7996_mcu_set_thermal_throttling(struct mt7996_phy *phy, u8 state);