wifi: mt76: mt7996: support mt7992 eeprom loading
authorStanleyYP Wang <StanleyYP.Wang@mediatek.com>
Mon, 13 Nov 2023 07:06:16 +0000 (15:06 +0800)
committerFelix Fietkau <nbd@nbd.name>
Thu, 7 Dec 2023 17:50:22 +0000 (18:50 +0100)
Add the default eeprom and 0x7992 check to mt7996_check_eeprom().
This is a preliminary patch for mt7992 chipsets support.

Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Signed-off-by: Shayne Chen <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/mt7996.h

index 9db7e531076d152f76ec26af8126b10c4a685577..f876bb1f3ba44284317b3d800630f97040b593b1 100644 (file)
@@ -14,7 +14,9 @@ static int mt7996_check_eeprom(struct mt7996_dev *dev)
 
        switch (val) {
        case 0x7990:
-               return 0;
+               return is_mt7996(&dev->mt76) ? 0 : -EINVAL;
+       case 0x7992:
+               return is_mt7992(&dev->mt76) ? 0 : -EINVAL;
        default:
                return -EINVAL;
        }
@@ -22,8 +24,14 @@ static int mt7996_check_eeprom(struct mt7996_dev *dev)
 
 static char *mt7996_eeprom_name(struct mt7996_dev *dev)
 {
-       /* reserve for future variants */
-       return MT7996_EEPROM_DEFAULT;
+       switch (mt76_chip(&dev->mt76)) {
+       case 0x7990:
+               return MT7996_EEPROM_DEFAULT;
+       case 0x7992:
+               return MT7992_EEPROM_DEFAULT;
+       default:
+               return MT7996_EEPROM_DEFAULT;
+       }
 }
 
 static int
index 87822663870f02284f1b5f0e55f9ac8d9233d667..5cdde28ce83fe17cbb620e55932b27226e0ff6bc 100644 (file)
@@ -39,6 +39,7 @@
 #define MT7992_ROM_PATCH               "mediatek/mt7996/mt7992_rom_patch.bin"
 
 #define MT7996_EEPROM_DEFAULT          "mediatek/mt7996/mt7996_eeprom.bin"
+#define MT7992_EEPROM_DEFAULT          "mediatek/mt7996/mt7992_eeprom.bin"
 #define MT7996_EEPROM_SIZE             7680
 #define MT7996_EEPROM_BLOCK_SIZE       16
 #define MT7996_TOKEN_SIZE              16384