]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
mt76: connac: add bss color support for sta mode
authorYN Chen <yn.chen@mediatek.com>
Thu, 20 May 2021 03:46:35 +0000 (11:46 +0800)
committerFelix Fietkau <nbd@nbd.name>
Sat, 19 Jun 2021 07:22:45 +0000 (09:22 +0200)
Add bss color support for sta mode

Signed-off-by: Jayden.Kuo <jayden.kuo@mediatek.com>
Signed-off-by: YN Chen <yn.chen@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
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 dd4a28b75e4eaaa3bb5784492daec100d5e2dc77..9066c57b1e32e0c5f0aaeba3b33654472967aac2 100644 (file)
@@ -1313,6 +1313,7 @@ int mt76_connac_mcu_uni_add_bss(struct mt76_phy *phy,
                                u8 pad[3];
                        } __packed hdr;
                        struct bss_info_uni_he he;
+                       struct bss_info_uni_bss_color bss_color;
                } he_req = {
                        .hdr = {
                                .bss_idx = mvif->idx,
@@ -1321,8 +1322,21 @@ int mt76_connac_mcu_uni_add_bss(struct mt76_phy *phy,
                                .tag = cpu_to_le16(UNI_BSS_INFO_HE_BASIC),
                                .len = cpu_to_le16(sizeof(struct bss_info_uni_he)),
                        },
+                       .bss_color = {
+                               .tag = cpu_to_le16(UNI_BSS_INFO_BSS_COLOR),
+                               .len = cpu_to_le16(sizeof(struct bss_info_uni_bss_color)),
+                               .enable = 0,
+                               .bss_color = 0,
+                       },
                };
 
+               if (enable) {
+                       he_req.bss_color.enable =
+                               vif->bss_conf.he_bss_color.enabled;
+                       he_req.bss_color.bss_color =
+                               vif->bss_conf.he_bss_color.color;
+               }
+
                mt76_connac_mcu_uni_bss_he_tlv(phy, vif,
                                               (struct tlv *)&he_req.he);
                err = mt76_mcu_send_msg(mdev, MCU_UNI_CMD_BSS_INFO_UPDATE,
index 676b1c6bc9597ace248e55feff728f1d2944577f..13f7d6a5788992a6e712c40400280a4e6a0d29c5 100644 (file)
@@ -575,6 +575,7 @@ enum {
 enum {
        UNI_BSS_INFO_BASIC = 0,
        UNI_BSS_INFO_RLM = 2,
+       UNI_BSS_INFO_BSS_COLOR = 4,
        UNI_BSS_INFO_HE_BASIC = 5,
        UNI_BSS_INFO_BCN_CONTENT = 7,
        UNI_BSS_INFO_QBSS = 15,
@@ -789,6 +790,14 @@ struct mt76_connac_sched_scan_done {
        __le16 pad;
 } __packed;
 
+struct bss_info_uni_bss_color {
+       __le16 tag;
+       __le16 len;
+       u8 enable;
+       u8 bss_color;
+       u8 rsv[2];
+} __packed;
+
 struct bss_info_uni_he {
        __le16 tag;
        __le16 len;