mt76: connac: move mt76_connac_mcu_gen_dl_mode in mt76-connac module
authorLorenzo Bianconi <lorenzo@kernel.org>
Fri, 24 Dec 2021 10:58:09 +0000 (11:58 +0100)
committerFelix Fietkau <nbd@nbd.name>
Thu, 3 Feb 2022 12:57:58 +0000 (13:57 +0100)
Move mt76_connac_mcu_gen_dl_mode utility routine in mt76_connac_mcu.h
since it is shared by all drivers.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c

index 3b94e4f..0a91449 100644 (file)
@@ -71,19 +71,6 @@ struct mt7663_fw_buf {
 
 #define IMG_CRC_LEN                    4
 
-#define FW_FEATURE_SET_ENCRYPT         BIT(0)
-#define FW_FEATURE_SET_KEY_IDX         GENMASK(2, 1)
-
-#define DL_MODE_ENCRYPT                        BIT(0)
-#define DL_MODE_KEY_IDX                        GENMASK(2, 1)
-#define DL_MODE_RESET_SEC_IV           BIT(3)
-#define DL_MODE_WORKING_PDA_CR4                BIT(4)
-#define DL_MODE_VALID_RAM_ENTRY         BIT(5)
-#define DL_MODE_NEED_RSP               BIT(31)
-
-#define FW_START_OVERRIDE              BIT(0)
-#define FW_START_WORKING_PDA_CR4       BIT(2)
-
 void mt7615_mcu_fill_msg(struct mt7615_dev *dev, struct sk_buff *skb,
                         int cmd, int *wait_seq)
 {
@@ -1303,20 +1290,6 @@ release_fw:
        return ret;
 }
 
-static u32 mt7615_mcu_gen_dl_mode(u8 feature_set, bool is_cr4)
-{
-       u32 ret = 0;
-
-       ret |= (feature_set & FW_FEATURE_SET_ENCRYPT) ?
-              (DL_MODE_ENCRYPT | DL_MODE_RESET_SEC_IV) : 0;
-       ret |= FIELD_PREP(DL_MODE_KEY_IDX,
-                         FIELD_GET(FW_FEATURE_SET_KEY_IDX, feature_set));
-       ret |= DL_MODE_NEED_RSP;
-       ret |= is_cr4 ? DL_MODE_WORKING_PDA_CR4 : 0;
-
-       return ret;
-}
-
 static int
 mt7615_mcu_send_ram_firmware(struct mt7615_dev *dev,
                             const struct mt7615_fw_trailer *hdr,
@@ -1327,7 +1300,8 @@ mt7615_mcu_send_ram_firmware(struct mt7615_dev *dev,
        u32 len, addr, mode;
 
        for (i = 0; i < n_region; i++) {
-               mode = mt7615_mcu_gen_dl_mode(hdr[i].feature_set, is_cr4);
+               mode = mt76_connac_mcu_gen_dl_mode(&dev->mt76,
+                                                  hdr[i].feature_set, is_cr4);
                len = le32_to_cpu(hdr[i].len) + IMG_CRC_LEN;
                addr = le32_to_cpu(hdr[i].addr);
 
@@ -1575,7 +1549,8 @@ static int mt7663_load_n9(struct mt7615_dev *dev, const char *name)
                dev_info(dev->mt76.dev, "Parsing tailer Region: %d\n", i);
 
                buf = (const struct mt7663_fw_buf *)(base_addr - shift);
-               mode = mt7615_mcu_gen_dl_mode(buf->feature_set, false);
+               mode = mt76_connac_mcu_gen_dl_mode(&dev->mt76,
+                                                  buf->feature_set, false);
                addr = le32_to_cpu(buf->img_dest_addr);
                len = le32_to_cpu(buf->img_size);
 
index 0dd02d7..bce3134 100644 (file)
@@ -6,6 +6,26 @@
 
 #include "mt76_connac.h"
 
+#define FW_FEATURE_SET_ENCRYPT         BIT(0)
+#define FW_FEATURE_SET_KEY_IDX         GENMASK(2, 1)
+#define FW_FEATURE_ENCRY_MODE          BIT(4)
+#define FW_FEATURE_OVERRIDE_ADDR       BIT(5)
+
+#define DL_MODE_ENCRYPT                        BIT(0)
+#define DL_MODE_KEY_IDX                        GENMASK(2, 1)
+#define DL_MODE_RESET_SEC_IV           BIT(3)
+#define DL_MODE_WORKING_PDA_CR4                BIT(4)
+#define DL_MODE_VALID_RAM_ENTRY         BIT(5)
+#define DL_CONFIG_ENCRY_MODE_SEL       BIT(6)
+#define DL_MODE_NEED_RSP               BIT(31)
+
+#define FW_START_OVERRIDE              BIT(0)
+#define FW_START_WORKING_PDA_CR4       BIT(2)
+
+#define PATCH_SEC_NOT_SUPPORT          GENMASK(31, 0)
+#define PATCH_SEC_TYPE_MASK            GENMASK(15, 0)
+#define PATCH_SEC_TYPE_INFO            0x2
+
 struct tlv {
        __le16 tag;
        __le16 len;
@@ -1455,6 +1475,24 @@ mt76_connac_mcu_get_cipher(int cipher)
        }
 }
 
+static inline u32
+mt76_connac_mcu_gen_dl_mode(struct mt76_dev *dev, u8 feature_set, bool is_wa)
+{
+       u32 ret = 0;
+
+       ret |= feature_set & FW_FEATURE_SET_ENCRYPT ?
+              DL_MODE_ENCRYPT | DL_MODE_RESET_SEC_IV : 0;
+       if (is_mt7921(dev))
+               ret |= feature_set & FW_FEATURE_ENCRY_MODE ?
+                      DL_CONFIG_ENCRY_MODE_SEL : 0;
+       ret |= FIELD_PREP(DL_MODE_KEY_IDX,
+                         FIELD_GET(FW_FEATURE_SET_KEY_IDX, feature_set));
+       ret |= DL_MODE_NEED_RSP;
+       ret |= is_wa ? DL_MODE_WORKING_PDA_CR4 : 0;
+
+       return ret;
+}
+
 #define to_wcid_lo(id)         FIELD_GET(GENMASK(7, 0), (u16)id)
 #define to_wcid_hi(id)         FIELD_GET(GENMASK(9, 8), (u16)id)
 
index 3f4b045..cc09677 100644 (file)
@@ -66,22 +66,6 @@ struct mt7915_fw_region {
 
 #define MCU_PATCH_ADDRESS              0x200000
 
-#define FW_FEATURE_SET_ENCRYPT         BIT(0)
-#define FW_FEATURE_SET_KEY_IDX         GENMASK(2, 1)
-#define FW_FEATURE_OVERRIDE_ADDR       BIT(5)
-
-#define DL_MODE_ENCRYPT                        BIT(0)
-#define DL_MODE_KEY_IDX                        GENMASK(2, 1)
-#define DL_MODE_RESET_SEC_IV           BIT(3)
-#define DL_MODE_WORKING_PDA_CR4                BIT(4)
-#define DL_MODE_NEED_RSP               BIT(31)
-
-#define FW_START_OVERRIDE              BIT(0)
-#define FW_START_WORKING_PDA_CR4       BIT(2)
-
-#define PATCH_SEC_TYPE_MASK            GENMASK(15, 0)
-#define PATCH_SEC_TYPE_INFO            0x2
-
 #define HE_PHY(p, c)                   u8_get_bits(c, IEEE80211_HE_PHY_##p)
 #define HE_MAC(m, c)                   u8_get_bits(c, IEEE80211_HE_MAC_##m)
 
@@ -2042,20 +2026,6 @@ out:
        return ret;
 }
 
-static u32 mt7915_mcu_gen_dl_mode(u8 feature_set, bool is_wa)
-{
-       u32 ret = 0;
-
-       ret |= (feature_set & FW_FEATURE_SET_ENCRYPT) ?
-              (DL_MODE_ENCRYPT | DL_MODE_RESET_SEC_IV) : 0;
-       ret |= FIELD_PREP(DL_MODE_KEY_IDX,
-                         FIELD_GET(FW_FEATURE_SET_KEY_IDX, feature_set));
-       ret |= DL_MODE_NEED_RSP;
-       ret |= is_wa ? DL_MODE_WORKING_PDA_CR4 : 0;
-
-       return ret;
-}
-
 static int
 mt7915_mcu_send_ram_firmware(struct mt7915_dev *dev,
                             const struct mt7915_fw_trailer *hdr,
@@ -2071,7 +2041,8 @@ mt7915_mcu_send_ram_firmware(struct mt7915_dev *dev,
 
                region = (const struct mt7915_fw_region *)((const u8 *)hdr -
                         (hdr->n_region - i) * sizeof(*region));
-               mode = mt7915_mcu_gen_dl_mode(region->feature_set, is_wa);
+               mode = mt76_connac_mcu_gen_dl_mode(&dev->mt76,
+                                                  region->feature_set, is_wa);
                len = le32_to_cpu(region->len);
                addr = le32_to_cpu(region->addr);
 
index fa6c0d8..e4d6dd3 100644 (file)
@@ -67,25 +67,6 @@ struct mt7921_fw_region {
 #define MT_STA_BFER                    BIT(0)
 #define MT_STA_BFEE                    BIT(1)
 
-#define FW_FEATURE_SET_ENCRYPT         BIT(0)
-#define FW_FEATURE_SET_KEY_IDX         GENMASK(2, 1)
-#define FW_FEATURE_ENCRY_MODE          BIT(4)
-#define FW_FEATURE_OVERRIDE_ADDR       BIT(5)
-
-#define DL_MODE_ENCRYPT                        BIT(0)
-#define DL_MODE_KEY_IDX                        GENMASK(2, 1)
-#define DL_MODE_RESET_SEC_IV           BIT(3)
-#define DL_MODE_WORKING_PDA_CR4                BIT(4)
-#define DL_CONFIG_ENCRY_MODE_SEL       BIT(6)
-#define DL_MODE_NEED_RSP               BIT(31)
-
-#define FW_START_OVERRIDE              BIT(0)
-#define FW_START_WORKING_PDA_CR4       BIT(2)
-
-#define PATCH_SEC_NOT_SUPPORT          GENMASK(31, 0)
-#define PATCH_SEC_TYPE_MASK            GENMASK(15, 0)
-#define PATCH_SEC_TYPE_INFO            0x2
-
 #define PATCH_SEC_ENC_TYPE_MASK                GENMASK(31, 24)
 #define PATCH_SEC_ENC_TYPE_PLAIN               0x00
 #define PATCH_SEC_ENC_TYPE_AES                 0x01
@@ -583,22 +564,6 @@ out:
        return ret;
 }
 
-static u32 mt7921_mcu_gen_dl_mode(u8 feature_set, bool is_wa)
-{
-       u32 ret = 0;
-
-       ret |= (feature_set & FW_FEATURE_SET_ENCRYPT) ?
-              (DL_MODE_ENCRYPT | DL_MODE_RESET_SEC_IV) : 0;
-       ret |= (feature_set & FW_FEATURE_ENCRY_MODE) ?
-              DL_CONFIG_ENCRY_MODE_SEL : 0;
-       ret |= FIELD_PREP(DL_MODE_KEY_IDX,
-                         FIELD_GET(FW_FEATURE_SET_KEY_IDX, feature_set));
-       ret |= DL_MODE_NEED_RSP;
-       ret |= is_wa ? DL_MODE_WORKING_PDA_CR4 : 0;
-
-       return ret;
-}
-
 static int
 mt7921_mcu_send_ram_firmware(struct mt7921_dev *dev,
                             const struct mt7921_fw_trailer *hdr,
@@ -616,7 +581,8 @@ mt7921_mcu_send_ram_firmware(struct mt7921_dev *dev,
 
                region = (const struct mt7921_fw_region *)((const u8 *)hdr -
                         (hdr->n_region - i) * sizeof(*region));
-               mode = mt7921_mcu_gen_dl_mode(region->feature_set, is_wa);
+               mode = mt76_connac_mcu_gen_dl_mode(&dev->mt76,
+                                                  region->feature_set, is_wa);
                len = le32_to_cpu(region->len);
                addr = le32_to_cpu(region->addr);