wifi: mt76: mt7996: add macros for pci device ids
authorShayne Chen <shayne.chen@mediatek.com>
Wed, 9 Apr 2025 14:07:41 +0000 (22:07 +0800)
committerFelix Fietkau <nbd@nbd.name>
Wed, 21 May 2025 12:49:31 +0000 (14:49 +0200)
The chipset name (i.e., brand name) used by the driver may cause confusion
with the PCI device ID when adding support for new chipsets.

| Chipset name | PCI device id  |
|--------------|----------------|
| 7996         | 0x7990, 0x7991 |
| 7992         | 0x7992, 0x799a |
| 7990         | 0x7993, 0x799b |

To prevent confusion, replace the code that directly uses the device ID
with macros. This is a preliminary patch to support mt7990 chipset.

Co-developed-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250409140750.724437-2-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7996/coredump.c
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/mmio.c
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
drivers/net/wireless/mediatek/mt76/mt7996/pci.c

index ccab0d7b9be474e16d8888a9d46ec194209aabf2..303d6e80a6662fb95266367a27d108adb7eb00bc 100644 (file)
@@ -48,8 +48,8 @@ const struct mt7996_mem_region*
 mt7996_coredump_get_mem_layout(struct mt7996_dev *dev, u32 *num)
 {
        switch (mt76_chip(&dev->mt76)) {
-       case 0x7990:
-       case 0x7991:
+       case MT7996_DEVICE_ID:
+       case MT7996_DEVICE_ID_2:
                *num = ARRAY_SIZE(mt7996_mem_regions);
                return &mt7996_mem_regions[0];
        default:
index 53dfac02f8af0b7ab8c42e95146a81096d4022ca..51b09956486bf3754dc1ff8ceaea4668872ea978 100644 (file)
@@ -13,9 +13,9 @@ static int mt7996_check_eeprom(struct mt7996_dev *dev)
        u16 val = get_unaligned_le16(eeprom);
 
        switch (val) {
-       case 0x7990:
+       case MT7996_DEVICE_ID:
                return is_mt7996(&dev->mt76) ? 0 : -EINVAL;
-       case 0x7992:
+       case MT7992_DEVICE_ID:
                return is_mt7992(&dev->mt76) ? 0 : -EINVAL;
        default:
                return -EINVAL;
@@ -25,7 +25,7 @@ static int mt7996_check_eeprom(struct mt7996_dev *dev)
 static char *mt7996_eeprom_name(struct mt7996_dev *dev)
 {
        switch (mt76_chip(&dev->mt76)) {
-       case 0x7992:
+       case MT7992_DEVICE_ID:
                switch (dev->var.type) {
                case MT7992_VAR_TYPE_23:
                        if (dev->var.fem == MT7996_FEM_INT)
@@ -39,7 +39,7 @@ static char *mt7996_eeprom_name(struct mt7996_dev *dev)
                                return MT7992_EEPROM_DEFAULT_MIX;
                        return MT7992_EEPROM_DEFAULT;
                }
-       case 0x7990:
+       case MT7996_DEVICE_ID:
        default:
                switch (dev->var.type) {
                case MT7996_VAR_TYPE_233:
index 6b660424aedc3162a7848f3748afd61eb968da3d..f017d30e1c499d2b72433995137df84c31763c2f 100644 (file)
@@ -929,13 +929,13 @@ static int mt7996_variant_type_init(struct mt7996_dev *dev)
        u8 var_type;
 
        switch (mt76_chip(&dev->mt76)) {
-       case 0x7990:
+       case MT7996_DEVICE_ID:
                if (val & MT_PAD_GPIO_2ADIE_TBTC)
                        var_type = MT7996_VAR_TYPE_233;
                else
                        var_type = MT7996_VAR_TYPE_444;
                break;
-       case 0x7992:
+       case MT7992_DEVICE_ID:
                if (val & MT_PAD_GPIO_ADIE_SINGLE)
                        var_type = MT7992_VAR_TYPE_23;
                else if (u32_get_bits(val, MT_PAD_GPIO_ADIE_COMB_7992))
index ddd555942c738912d79d7d633b4e8b2e3cdc5a42..81cc50ae55b063ad9fbfcb284e42482f1af0751e 100644 (file)
@@ -13,7 +13,7 @@
 #define fw_name(_dev, name, ...)       ({                      \
        char *_fw;                                              \
        switch (mt76_chip(&(_dev)->mt76)) {                     \
-       case 0x7992:                                            \
+       case MT7992_DEVICE_ID:                                          \
                switch ((_dev)->var.type) {                     \
                case MT7992_VAR_TYPE_23:                        \
                        _fw = MT7992_##name##_23;               \
@@ -22,7 +22,7 @@
                        _fw = MT7992_##name;                    \
                }                                               \
                break;                                          \
-       case 0x7990:                                            \
+       case MT7996_DEVICE_ID:                                          \
        default:                                                \
                switch ((_dev)->var.type) {                     \
                case MT7996_VAR_TYPE_233:                       \
index 13b188e281bdb9a1e0d029c9d739769a380a4723..8b07883f45cc6adbebe2dcb4d9bb9f2cf3eeac58 100644 (file)
@@ -350,7 +350,7 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
                                     MT_RXQ_RING_BASE(MT7996_RXQ_BAND0) +
                                     MT7996_RXQ_BAND0 * MT_RING_SIZE;
 
-               wed->wlan.id = 0x7991;
+               wed->wlan.id = MT7996_DEVICE_ID_2;
                wed->wlan.tx_tbit[0] = ffs(MT_INT_TX_DONE_BAND2) - 1;
        } else {
                wed->wlan.hw_rro = dev->has_rro; /* default on */
@@ -443,13 +443,13 @@ static int mt7996_mmio_init(struct mt76_dev *mdev,
        spin_lock_init(&dev->reg_lock);
 
        switch (device_id) {
-       case 0x7990:
+       case MT7996_DEVICE_ID:
                dev->reg.base = mt7996_reg_base;
                dev->reg.offs_rev = mt7996_offs;
                dev->reg.map = mt7996_reg_map;
                dev->reg.map_size = ARRAY_SIZE(mt7996_reg_map);
                break;
-       case 0x7992:
+       case MT7992_DEVICE_ID:
                dev->reg.base = mt7996_reg_base;
                dev->reg.offs_rev = mt7992_offs;
                dev->reg.map = mt7996_reg_map;
index 43e646ed6094cb7fb78d201fc3ee8446ad2a16a1..bc22c3e12d946659b2642e66a81de2810b7c3d42 100644 (file)
 #define MT7996_RX_MCU_RING_SIZE                512
 #define MT7996_RX_MCU_RING_SIZE_WA     1024
 
+#define MT7996_DEVICE_ID               0x7990
+#define MT7996_DEVICE_ID_2             0x7991
+#define MT7992_DEVICE_ID               0x7992
+#define MT7992_DEVICE_ID_2             0x799a
+
 #define MT7996_FIRMWARE_WA             "mediatek/mt7996/mt7996_wa.bin"
 #define MT7996_FIRMWARE_WM             "mediatek/mt7996/mt7996_wm.bin"
 #define MT7996_FIRMWARE_DSP            "mediatek/mt7996/mt7996_dsp.bin"
@@ -471,11 +476,11 @@ static inline bool
 mt7996_has_background_radar(struct mt7996_dev *dev)
 {
        switch (mt76_chip(&dev->mt76)) {
-       case 0x7990:
+       case MT7996_DEVICE_ID:
                if (dev->var.type == MT7996_VAR_TYPE_233)
                        return false;
                break;
-       case 0x7992:
+       case MT7992_DEVICE_ID:
                if (dev->var.type == MT7992_VAR_TYPE_23)
                        return false;
                break;
index 04056181368a69b81df51294ea6987d512e7c6a6..a4338367aaa12649101c5c76055491973e047c39 100644 (file)
@@ -16,14 +16,14 @@ static DEFINE_SPINLOCK(hif_lock);
 static u32 hif_idx;
 
 static const struct pci_device_id mt7996_pci_device_table[] = {
-       { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x7990) },
-       { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x7992) },
+       { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, MT7996_DEVICE_ID) },
+       { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, MT7992_DEVICE_ID) },
        { },
 };
 
 static const struct pci_device_id mt7996_hif_device_table[] = {
-       { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x7991) },
-       { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x799a) },
+       { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, MT7996_DEVICE_ID_2) },
+       { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, MT7992_DEVICE_ID_2) },
        { },
 };
 
@@ -63,8 +63,8 @@ static struct mt7996_hif *mt7996_pci_init_hif2(struct pci_dev *pdev)
 {
        hif_idx++;
 
-       if (!pci_get_device(PCI_VENDOR_ID_MEDIATEK, 0x7991, NULL) &&
-           !pci_get_device(PCI_VENDOR_ID_MEDIATEK, 0x799a, NULL))
+       if (!pci_get_device(PCI_VENDOR_ID_MEDIATEK, MT7996_DEVICE_ID_2, NULL) &&
+           !pci_get_device(PCI_VENDOR_ID_MEDIATEK, MT7992_DEVICE_ID_2, NULL))
                return NULL;
 
        writel(hif_idx | MT_PCIE_RECOG_ID_SEM,
@@ -121,7 +121,8 @@ static int mt7996_pci_probe(struct pci_dev *pdev,
 
        mt76_pci_disable_aspm(pdev);
 
-       if (id->device == 0x7991 || id->device == 0x799a)
+       if (id->device == MT7996_DEVICE_ID_2 ||
+           id->device == MT7992_DEVICE_ID_2)
                return mt7996_pci_hif2_probe(pdev);
 
        dev = mt7996_mmio_probe(&pdev->dev, pcim_iomap_table(pdev)[0],