]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: mt76: mt7996: add variant for MT7992 chipsets
authorShayne Chen <shayne.chen@mediatek.com>
Thu, 12 Feb 2026 09:03:09 +0000 (17:03 +0800)
committerFelix Fietkau <nbd@nbd.name>
Tue, 24 Mar 2026 15:49:29 +0000 (15:49 +0000)
Introduce VAR_TYPE_24 for the MT7992 chipsets, a dual-band variant
supporting 3T3R/2SS on the 2 GHz band and 5T5R/4SS on the 5GHz band.

Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20260212090310.3335392-2-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7996/eeprom.c
drivers/net/wireless/mediatek/mt76/mt7996/init.c
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h

index 00c72be8498fea785091681567b28c326627a0fa..ac05f7d75d63d6979172bebab981c395cdf854cb 100644 (file)
@@ -33,6 +33,8 @@ static char *mt7996_eeprom_name(struct mt7996_dev *dev)
                        if (dev->var.fem == MT7996_FEM_INT)
                                return MT7992_EEPROM_DEFAULT_23_INT;
                        return MT7992_EEPROM_DEFAULT_23;
+               case MT7992_VAR_TYPE_24:
+                       return MT7992_EEPROM_DEFAULT_24;
                case MT7992_VAR_TYPE_44:
                default:
                        if (dev->var.fem == MT7996_FEM_INT)
@@ -392,7 +394,8 @@ bool mt7996_eeprom_has_background_radar(struct mt7996_dev *dev)
                        return false;
                break;
        case MT7992_DEVICE_ID:
-               if (dev->var.type == MT7992_VAR_TYPE_23)
+               if (dev->var.type == MT7992_VAR_TYPE_23 ||
+                   dev->var.type == MT7992_VAR_TYPE_24)
                        return false;
                break;
        case MT7990_DEVICE_ID: {
index 1fab0490983100ed103f716ea84e0b5b117575e8..3b4f808b968c052fab514dc61b72049fd8651637 100644 (file)
@@ -1173,7 +1173,7 @@ static int mt7996_variant_type_init(struct mt7996_dev *dev)
                else if (u32_get_bits(val, MT_PAD_GPIO_ADIE_COMB_7992))
                        var_type = MT7992_VAR_TYPE_44;
                else
-                       return -EINVAL;
+                       var_type = MT7992_VAR_TYPE_24;
                break;
        case MT7990_DEVICE_ID:
                var_type = MT7990_VAR_TYPE_23;
index 2a149f64c6670f6ba37eb41600e3ded23f56e164..81c4e0d4654bb65e8510be18cfd49848ddd3a855 100644 (file)
@@ -18,6 +18,9 @@
                case MT7992_VAR_TYPE_23:                        \
                        _fw = MT7992_##name##_23;               \
                        break;                                  \
+               case MT7992_VAR_TYPE_24:                        \
+                       _fw = MT7992_##name##_24;               \
+                       break;                                  \
                default:                                        \
                        _fw = MT7992_##name;                    \
                }                                               \
index ea1f656a93347dd77f4911028ea4421dc58ff907..d36fb5396141a99da6a6faeae4d388288f6ca846 100644 (file)
 #define MT7992_FIRMWARE_DSP_23         "mediatek/mt7996/mt7992_dsp_23.bin"
 #define MT7992_ROM_PATCH_23            "mediatek/mt7996/mt7992_rom_patch_23.bin"
 
+#define MT7992_FIRMWARE_WA_24          "mediatek/mt7996/mt7992_wa_24.bin"
+#define MT7992_FIRMWARE_WM_24          "mediatek/mt7996/mt7992_wm_24.bin"
+#define MT7992_FIRMWARE_DSP_24         "mediatek/mt7996/mt7992_dsp_24.bin"
+#define MT7992_ROM_PATCH_24            "mediatek/mt7996/mt7992_rom_patch_24.bin"
+
 #define MT7990_FIRMWARE_WA             ""
 #define MT7990_FIRMWARE_WM             "mediatek/mt7996/mt7990_wm.bin"
 #define MT7990_FIRMWARE_DSP            ""
@@ -79,6 +84,7 @@
 #define MT7992_EEPROM_DEFAULT_MIX      "mediatek/mt7996/mt7992_eeprom_2i5e.bin"
 #define MT7992_EEPROM_DEFAULT_23       "mediatek/mt7996/mt7992_eeprom_23.bin"
 #define MT7992_EEPROM_DEFAULT_23_INT   "mediatek/mt7996/mt7992_eeprom_23_2i5i.bin"
+#define MT7992_EEPROM_DEFAULT_24       "mediatek/mt7996/mt7992_eeprom_24_2i5i.bin"
 
 #define MT7990_EEPROM_DEFAULT          "mediatek/mt7996/mt7990_eeprom.bin"
 #define MT7990_EEPROM_DEFAULT_INT      "mediatek/mt7996/mt7990_eeprom_2i5i.bin"
@@ -158,6 +164,7 @@ enum mt7996_var_type {
 enum mt7992_var_type {
        MT7992_VAR_TYPE_44,
        MT7992_VAR_TYPE_23,
+       MT7992_VAR_TYPE_24,
 };
 
 enum mt7990_var_type {