OSDN Git Service

mt76: connac: add 6GHz support to mt76_connac_mcu_uni_add_bss
authorLorenzo Bianconi <lorenzo@kernel.org>
Tue, 24 Aug 2021 10:22:24 +0000 (12:22 +0200)
committerFelix Fietkau <nbd@nbd.name>
Wed, 20 Oct 2021 08:36:46 +0000 (10:36 +0200)
This is a preliminary patch to enable 6GHz band for mt7921 devices.

Tested-by: Deren Wu <deren.wu@mediatek.com>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h

index ab44e61..3b9c418 100644 (file)
@@ -1292,7 +1292,8 @@ int mt76_connac_mcu_uni_add_bss(struct mt76_phy *phy,
                        u8 short_st;
                        u8 ht_op_info;
                        u8 sco;
-                       u8 pad[3];
+                       u8 band;
+                       u8 pad[2];
                } __packed rlm;
        } __packed rlm_req = {
                .hdr = {
@@ -1308,13 +1309,19 @@ int mt76_connac_mcu_uni_add_bss(struct mt76_phy *phy,
                        .ht_op_info = 4, /* set HT 40M allowed */
                        .rx_streams = phy->chainmask,
                        .short_st = true,
+                       .band = band,
                },
        };
        int err, conn_type;
-       u8 idx;
+       u8 idx, basic_phy;
 
        idx = mvif->omac_idx > EXT_BSSID_START ? HW_BSSID_0 : mvif->omac_idx;
        basic_req.basic.hw_bss_idx = idx;
+       if (band == NL80211_BAND_6GHZ)
+               basic_req.basic.phymode_ext = BIT(0);
+
+       basic_phy = mt76_connac_get_phy_mode_v2(phy, vif, band, NULL);
+       basic_req.basic.nonht_basic_phy = cpu_to_le16(basic_phy);
 
        switch (vif->type) {
        case NL80211_IFTYPE_MESH_POINT:
index 5ab5e18..ea46dde 100644 (file)
@@ -668,10 +668,14 @@ struct mt76_connac_bss_basic_tlv {
                     * bit(3): GN
                     * bit(4): AN
                     * bit(5): AC
+                    * bit(6): AX2
+                    * bit(7): AX5
+                    * bit(8): AX6
                     */
        __le16 sta_idx;
-       u8 nonht_basic_phy;
-       u8 pad[3];
+       __le16 nonht_basic_phy;
+       u8 phymode_ext; /* bit(0) AX_6G */
+       u8 pad[1];
 } __packed;
 
 struct mt76_connac_bss_qos_tlv {