Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'nfp-support-corigine-pcie-vendor-id'

Simon Horman says:

====================
nfp: support Corigine PCIE vendor ID

Historically the nfp driver has supported NFP chips with Netronome's
PCIE vendor ID. This patch extends the driver to also support NFP
chips, which at this point are assumed to be otherwise identical from
a software perspective, that have Corigine's PCIE vendor ID (0x1da8).

This patchset begins by cleaning up strings to make them:
* Vendor neutral for the NFP chip
* Relate to Corigine for the driver itself

It then adds support to the driver for the Corigine's PCIE vendor ID
====================

Link: https://lore.kernel.org/r/20220508173816.476357-1-simon.horman@corigine.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+57 -21
+29 -9
drivers/net/ethernet/netronome/nfp/nfp_main.c
··· 33 33 static const char nfp_driver_name[] = "nfp"; 34 34 35 35 static const struct pci_device_id nfp_pci_device_ids[] = { 36 - { PCI_VENDOR_ID_NETRONOME, PCI_DEVICE_ID_NETRONOME_NFP3800, 36 + { PCI_VENDOR_ID_NETRONOME, PCI_DEVICE_ID_NFP3800, 37 37 PCI_VENDOR_ID_NETRONOME, PCI_ANY_ID, 38 38 PCI_ANY_ID, 0, NFP_DEV_NFP3800, 39 39 }, 40 - { PCI_VENDOR_ID_NETRONOME, PCI_DEVICE_ID_NETRONOME_NFP4000, 40 + { PCI_VENDOR_ID_NETRONOME, PCI_DEVICE_ID_NFP4000, 41 41 PCI_VENDOR_ID_NETRONOME, PCI_ANY_ID, 42 42 PCI_ANY_ID, 0, NFP_DEV_NFP6000, 43 43 }, 44 - { PCI_VENDOR_ID_NETRONOME, PCI_DEVICE_ID_NETRONOME_NFP5000, 44 + { PCI_VENDOR_ID_NETRONOME, PCI_DEVICE_ID_NFP5000, 45 45 PCI_VENDOR_ID_NETRONOME, PCI_ANY_ID, 46 46 PCI_ANY_ID, 0, NFP_DEV_NFP6000, 47 47 }, 48 - { PCI_VENDOR_ID_NETRONOME, PCI_DEVICE_ID_NETRONOME_NFP6000, 48 + { PCI_VENDOR_ID_NETRONOME, PCI_DEVICE_ID_NFP6000, 49 49 PCI_VENDOR_ID_NETRONOME, PCI_ANY_ID, 50 + PCI_ANY_ID, 0, NFP_DEV_NFP6000, 51 + }, 52 + { PCI_VENDOR_ID_CORIGINE, PCI_DEVICE_ID_NFP3800, 53 + PCI_VENDOR_ID_CORIGINE, PCI_ANY_ID, 54 + PCI_ANY_ID, 0, NFP_DEV_NFP3800, 55 + }, 56 + { PCI_VENDOR_ID_CORIGINE, PCI_DEVICE_ID_NFP4000, 57 + PCI_VENDOR_ID_CORIGINE, PCI_ANY_ID, 58 + PCI_ANY_ID, 0, NFP_DEV_NFP6000, 59 + }, 60 + { PCI_VENDOR_ID_CORIGINE, PCI_DEVICE_ID_NFP5000, 61 + PCI_VENDOR_ID_CORIGINE, PCI_ANY_ID, 62 + PCI_ANY_ID, 0, NFP_DEV_NFP6000, 63 + }, 64 + { PCI_VENDOR_ID_CORIGINE, PCI_DEVICE_ID_NFP6000, 65 + PCI_VENDOR_ID_CORIGINE, PCI_ANY_ID, 50 66 PCI_ANY_ID, 0, NFP_DEV_NFP6000, 51 67 }, 52 68 { 0, } /* Required last entry. */ ··· 697 681 struct nfp_pf *pf; 698 682 int err; 699 683 700 - if (pdev->vendor == PCI_VENDOR_ID_NETRONOME && 701 - pdev->device == PCI_DEVICE_ID_NETRONOME_NFP6000_VF) 684 + if ((pdev->vendor == PCI_VENDOR_ID_NETRONOME || 685 + pdev->vendor == PCI_VENDOR_ID_CORIGINE) && 686 + (pdev->device == PCI_DEVICE_ID_NFP3800_VF || 687 + pdev->device == PCI_DEVICE_ID_NFP6000_VF)) 702 688 dev_warn(&pdev->dev, "Binding NFP VF device to the NFP PF driver, the VF driver is called 'nfp_netvf'\n"); 703 689 704 690 dev_info = &nfp_dev_info[pci_id->driver_data]; ··· 883 865 { 884 866 int err; 885 867 886 - pr_info("%s: NFP PCIe Driver, Copyright (C) 2014-2017 Netronome Systems\n", 868 + pr_info("%s: NFP PCIe Driver, Copyright (C) 2014-2020 Netronome Systems\n", 869 + nfp_driver_name); 870 + pr_info("%s: NFP PCIe Driver, Copyright (C) 2021-2022 Corigine Inc.\n", 887 871 nfp_driver_name); 888 872 889 873 nfp_net_debugfs_create(); ··· 929 909 MODULE_FIRMWARE("netronome/nic_AMDA0099-0001_2x25.nffw"); 930 910 MODULE_FIRMWARE("netronome/nic_AMDA0099-0001_1x10_1x25.nffw"); 931 911 932 - MODULE_AUTHOR("Netronome Systems <oss-drivers@netronome.com>"); 912 + MODULE_AUTHOR("Corigine, Inc. <oss-drivers@corigine.com>"); 933 913 MODULE_LICENSE("GPL"); 934 - MODULE_DESCRIPTION("The Netronome Flow Processor (NFP) driver."); 914 + MODULE_DESCRIPTION("The Network Flow Processor (NFP) driver.");
+1 -1
drivers/net/ethernet/netronome/nfp/nfp_net_common.c
··· 1984 1984 */ 1985 1985 void nfp_net_info(struct nfp_net *nn) 1986 1986 { 1987 - nn_info(nn, "Netronome NFP-6xxx %sNetdev: TxQs=%d/%d RxQs=%d/%d\n", 1987 + nn_info(nn, "NFP-6xxx %sNetdev: TxQs=%d/%d RxQs=%d/%d\n", 1988 1988 nn->dp.is_vf ? "VF " : "", 1989 1989 nn->dp.num_tx_rings, nn->max_tx_rings, 1990 1990 nn->dp.num_rx_rings, nn->max_rx_rings);
+10 -2
drivers/net/ethernet/netronome/nfp/nfp_netvf_main.c
··· 38 38 static const char nfp_net_driver_name[] = "nfp_netvf"; 39 39 40 40 static const struct pci_device_id nfp_netvf_pci_device_ids[] = { 41 - { PCI_VENDOR_ID_NETRONOME, PCI_DEVICE_ID_NETRONOME_NFP3800_VF, 41 + { PCI_VENDOR_ID_NETRONOME, PCI_DEVICE_ID_NFP3800_VF, 42 42 PCI_VENDOR_ID_NETRONOME, PCI_ANY_ID, 43 43 PCI_ANY_ID, 0, NFP_DEV_NFP3800_VF, 44 44 }, 45 - { PCI_VENDOR_ID_NETRONOME, PCI_DEVICE_ID_NETRONOME_NFP6000_VF, 45 + { PCI_VENDOR_ID_NETRONOME, PCI_DEVICE_ID_NFP6000_VF, 46 46 PCI_VENDOR_ID_NETRONOME, PCI_ANY_ID, 47 + PCI_ANY_ID, 0, NFP_DEV_NFP6000_VF, 48 + }, 49 + { PCI_VENDOR_ID_CORIGINE, PCI_DEVICE_ID_NFP3800_VF, 50 + PCI_VENDOR_ID_CORIGINE, PCI_ANY_ID, 51 + PCI_ANY_ID, 0, NFP_DEV_NFP3800_VF, 52 + }, 53 + { PCI_VENDOR_ID_CORIGINE, PCI_DEVICE_ID_NFP6000_VF, 54 + PCI_VENDOR_ID_CORIGINE, PCI_ANY_ID, 47 55 PCI_ANY_ID, 0, NFP_DEV_NFP6000_VF, 48 56 }, 49 57 { 0, } /* Required last entry. */
+9 -9
drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c
··· 621 621 nfp->dev_info->pcie_expl_offset; 622 622 623 623 switch (nfp->pdev->device) { 624 - case PCI_DEVICE_ID_NETRONOME_NFP3800: 624 + case PCI_DEVICE_ID_NFP3800: 625 625 pf = nfp->pdev->devfn & 7; 626 626 nfp->iomem.csr = bar->iomem + NFP_PCIE_BAR(pf); 627 627 break; 628 - case PCI_DEVICE_ID_NETRONOME_NFP4000: 629 - case PCI_DEVICE_ID_NETRONOME_NFP5000: 630 - case PCI_DEVICE_ID_NETRONOME_NFP6000: 628 + case PCI_DEVICE_ID_NFP4000: 629 + case PCI_DEVICE_ID_NFP5000: 630 + case PCI_DEVICE_ID_NFP6000: 631 631 nfp->iomem.csr = bar->iomem + NFP_PCIE_BAR(0); 632 632 break; 633 633 default: ··· 640 640 } 641 641 642 642 switch (nfp->pdev->device) { 643 - case PCI_DEVICE_ID_NETRONOME_NFP3800: 643 + case PCI_DEVICE_ID_NFP3800: 644 644 expl_groups = 1; 645 645 break; 646 - case PCI_DEVICE_ID_NETRONOME_NFP4000: 647 - case PCI_DEVICE_ID_NETRONOME_NFP5000: 648 - case PCI_DEVICE_ID_NETRONOME_NFP6000: 646 + case PCI_DEVICE_ID_NFP4000: 647 + case PCI_DEVICE_ID_NFP5000: 648 + case PCI_DEVICE_ID_NFP6000: 649 649 expl_groups = 4; 650 650 break; 651 651 default: ··· 1314 1314 int err; 1315 1315 1316 1316 /* Finished with card initialization. */ 1317 - dev_info(&pdev->dev, "Netronome Flow Processor %s PCIe Card Probe\n", 1317 + dev_info(&pdev->dev, "Network Flow Processor %s PCIe Card Probe\n", 1318 1318 dev_info->chip_names); 1319 1319 pcie_print_link_status(pdev); 1320 1320
+8
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_dev.h
··· 6 6 7 7 #include <linux/types.h> 8 8 9 + #define PCI_VENDOR_ID_CORIGINE 0x1da8 10 + #define PCI_DEVICE_ID_NFP3800 0x3800 11 + #define PCI_DEVICE_ID_NFP4000 0x4000 12 + #define PCI_DEVICE_ID_NFP5000 0x5000 13 + #define PCI_DEVICE_ID_NFP6000 0x6000 14 + #define PCI_DEVICE_ID_NFP3800_VF 0x3803 15 + #define PCI_DEVICE_ID_NFP6000_VF 0x6003 16 + 9 17 enum nfp_dev_id { 10 18 NFP_DEV_NFP3800, 11 19 NFP_DEV_NFP3800_VF,