]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: stmmac: dwmac-loongson: Add new GMAC's PCI device ID support
authorHuacai Chen <chenhuacai@loongson.cn>
Thu, 24 Apr 2025 07:22:09 +0000 (15:22 +0800)
committerJakub Kicinski <kuba@kernel.org>
Mon, 28 Apr 2025 20:37:26 +0000 (13:37 -0700)
Add a new GMAC's PCI device ID (0x7a23) support which is used in
Loongson-2K3000/Loongson-3B6000M. The new GMAC device use external PHY,
so it reuses loongson_gmac_data() as the old GMAC device (0x7a03), and
the new GMAC device still doesn't support flow control now.

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Yanteng Si <si.yanteng@linux.dev>
Tested-by: Henry Chen <chenx97@aosc.io>
Tested-by: Biao Dong <dongbiao@loongson.cn>
Signed-off-by: Baoqi Zhang <zhangbaoqi@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Link: https://patch.msgid.link/20250424072209.3134762-4-chenhuacai@loongson.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c

index 57917f26ab4d69a901fec900d150432cb3695356..e1591e6217d4b4802a22ca1c9020cb0402aada91 100644 (file)
@@ -66,7 +66,8 @@
                                         DMA_STATUS_TPS | DMA_STATUS_TI  | \
                                         DMA_STATUS_MSK_COMMON_LOONGSON)
 
-#define PCI_DEVICE_ID_LOONGSON_GMAC    0x7a03
+#define PCI_DEVICE_ID_LOONGSON_GMAC1   0x7a03
+#define PCI_DEVICE_ID_LOONGSON_GMAC2   0x7a23
 #define PCI_DEVICE_ID_LOONGSON_GNET    0x7a13
 #define DWMAC_CORE_MULTICHAN_V1        0x10    /* Loongson custom ID 0x10 */
 #define DWMAC_CORE_MULTICHAN_V2        0x12    /* Loongson custom ID 0x12 */
@@ -371,7 +372,7 @@ static struct mac_device_info *loongson_dwmac_setup(void *apriv)
        /* Loongson GMAC doesn't support the flow control. Loongson GNET
         * without multi-channel doesn't support the half-duplex link mode.
         */
-       if (pdev->device == PCI_DEVICE_ID_LOONGSON_GMAC) {
+       if (pdev->device != PCI_DEVICE_ID_LOONGSON_GNET) {
                mac->link.caps = MAC_10 | MAC_100 | MAC_1000;
        } else {
                if (ld->multichan)
@@ -659,7 +660,8 @@ static SIMPLE_DEV_PM_OPS(loongson_dwmac_pm_ops, loongson_dwmac_suspend,
                         loongson_dwmac_resume);
 
 static const struct pci_device_id loongson_dwmac_id_table[] = {
-       { PCI_DEVICE_DATA(LOONGSON, GMAC, &loongson_gmac_pci_info) },
+       { PCI_DEVICE_DATA(LOONGSON, GMAC1, &loongson_gmac_pci_info) },
+       { PCI_DEVICE_DATA(LOONGSON, GMAC2, &loongson_gmac_pci_info) },
        { PCI_DEVICE_DATA(LOONGSON, GNET, &loongson_gnet_pci_info) },
        {}
 };