]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
mt76: mt7915: support TxBF for DBDC
authorRyder Lee <ryder.lee@mediatek.com>
Tue, 19 Jan 2021 03:01:25 +0000 (11:01 +0800)
committerFelix Fietkau <nbd@nbd.name>
Wed, 27 Jan 2021 16:30:01 +0000 (17:30 +0100)
With this patch, TxBF can be run on both bands simultaneously.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7915/init.c
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h

index 5e21646865a66ff6c20dcd087827085b44c3a9ae..ad4e5b95158bc4cf59abf00e9cef765259bde303 100644 (file)
@@ -169,6 +169,13 @@ static int mt7915_txbf_init(struct mt7915_dev *dev)
 {
        int ret;
 
+
+       if (dev->dbdc_support) {
+               ret = mt7915_mcu_set_txbf_module(dev);
+               if (ret)
+                       return ret;
+       }
+
        /* trigger sounding packets */
        ret = mt7915_mcu_set_txbf_sounding(dev);
        if (ret)
index 44cef96db476b769d2711bd45b0fefb196ec25c2..0296f2aa7997dccfa28df84ba272eb9fc46f616d 100644 (file)
@@ -3401,6 +3401,25 @@ int mt7915_mcu_set_ser(struct mt7915_dev *dev, u8 action, u8 set, u8 band)
                                 &req, sizeof(req), false);
 }
 
+int mt7915_mcu_set_txbf_module(struct mt7915_dev *dev)
+{
+#define MT_BF_MODULE_UPDATE               25
+       struct {
+               u8 action;
+               u8 bf_num;
+               u8 bf_bitmap;
+               u8 bf_sel[8];
+               u8 rsv[8];
+       } __packed req = {
+               .action = MT_BF_MODULE_UPDATE,
+               .bf_num = 2,
+               .bf_bitmap = GENMASK(1, 0),
+       };
+
+       return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(TXBF_ACTION), &req,
+                                sizeof(req), true);
+}
+
 int mt7915_mcu_set_txbf_type(struct mt7915_dev *dev)
 {
 #define MT_BF_TYPE_UPDATE              20
index b5954bae139b2b09226b27174899844817a8e6a2..f45e88bf2626f641d401a550e6431969da6088b7 100644 (file)
@@ -341,6 +341,7 @@ int mt7915_mcu_set_pm(struct mt7915_dev *dev, int band, int enter);
 int mt7915_mcu_set_sku_en(struct mt7915_phy *phy, bool enable);
 int mt7915_mcu_set_sku(struct mt7915_phy *phy);
 int mt7915_mcu_set_txbf_type(struct mt7915_dev *dev);
+int mt7915_mcu_set_txbf_module(struct mt7915_dev *dev);
 int mt7915_mcu_set_txbf_sounding(struct mt7915_dev *dev);
 int mt7915_mcu_set_fcc5_lpn(struct mt7915_dev *dev, int val);
 int mt7915_mcu_set_pulse_th(struct mt7915_dev *dev,