bnxt_en: New Broadcom ethernet driver.
PATCH v4 1/1 bnxt_en: New Broadcom ethernet driver.
Broadcom ethernet driver for the new family of NetXtreme-C/E ethernet devices.
v4:
- Broke up 2 long message strings with "\n" (suggested by John Linville)
- Constify an array of strings (suggested by Stephen Hemminger)
- Improve bnxt_vf_pciid() (suggested by Stephen Hemminger)
- Use PCI_VDEVICE() to populate pci_device_id table for more compact source.
v3:
- Fixed 2 more sparse warnings.
- Removed some unused structures in .h files.
v2:
- Fixed all kbuild test robot reported warnings.
- Fixed many of the checkpatch.pl errors and warnings.
- Fixed the Kconfig description.
--- drivers/net/ethernet/broadcom/Kconfig | 19 + drivers/net/ethernet/broadcom/Makefile | 1 + drivers/net/ethernet/broadcom/bnxt/Makefile | 4 + drivers/net/ethernet/broadcom/bnxt/bnxt.c | 5817 ++++++++++++++++++++ drivers/net/ethernet/broadcom/bnxt/bnxt.h | 994 ++++ drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 1150 ++++ drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h | 18 + drivers/net/ethernet/broadcom/bnxt/bnxt_fw_hdr.h | 104 + drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h | 4046 ++++++++++++++ drivers/net/ethernet/broadcom/bnxt/bnxt_nvm_defs.h | 59 + drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 787 +++ drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.h | 22 + 12 files changed, 13021 insertions(+) create mode 100644 drivers/net/ethernet/broadcom/bnxt/Makefile create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt.c create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt.h create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_fw_hdr.h create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_nvm_defs.h create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.h
drivers/net/ethernet/broadcom/Kconfig +19 -0
@@ -170,4 +170,23 @@ config SYSTEMPORT Broadcom BCM7xxx Set Top Box family chipset using an internal Ethernet switch. +config BNXT + tristate "Broadcom NetXtreme-C/E support" + depends on PCI + select FW_LOADER + select LIBCRC32C + ---help--- + This driver supports Broadcom NetXtreme-C/E 10/25/40/50 gigabit + Ethernet cards. To compile this driver as a module, choose M here: + the module will be called bnxt_en. This is recommended. + +config BNXT_SRIOV + bool "Broadcom NetXtreme-C/E SR-IOV support" + depends on BNXT && PCI_IOV + default y + ---help--- + This configuration parameter enables Single Root Input Output + Virtualization support in the NetXtreme-C/E products. This + allows for virtual function acceleration in virtual environments. + endif # NET_VENDOR_BROADCOM
drivers/net/ethernet/broadcom/Makefile +1 -0
@@ -12,3 +12,4 @@ obj-$(CONFIG_SB1250_MAC) += sb1250-mac.o obj-$(CONFIG_TIGON3) += tg3.o obj-$(CONFIG_BGMAC) += bgmac.o obj-$(CONFIG_SYSTEMPORT) += bcmsysport.o +obj-$(CONFIG_BNXT) += bnxt/
drivers/net/ethernet/broadcom/bnxt/Makefile new file +4 -0
@@ -0,0 +1,4 @@ +obj-$(CONFIG_BNXT) += bnxt_en.o + +bnxt_en-y := bnxt.o bnxt_sriov.o bnxt_ethtool.o +
drivers/net/ethernet/broadcom/bnxt/bnxt.c new file +5817 -0
2,969 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt.h new file +994 -0
994 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c new file +1150 -0
1,150 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h new file +18 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt_fw_hdr.h new file +104 -0
104 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h new file +4046 -0
4,046 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt_nvm_defs.h new file +59 -0
59 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c new file +787 -0
787 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.h new file +22 -0
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Signature · 1 line
1.8.3.1
Part of the diff is not shown here. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt.c line 147
Quoted 6 lines · On Wed, 21 Oct 2015 03:45:08 -0400 Michael Chan <[email protected]> wrote:
drivers/net/ethernet/broadcom/bnxt/bnxt.c new file +6
-0+static inline void bnxt_enable_poll (struct bnxt_napi *bnapi) +{ +#ifdef CONFIG_NET_RX_BUSY_POLL +atomic_set (&bnapi->poll_state,BNXT_STATE_IDLE ); +#endif +}
We need a better way to abstract this and get the #ifdef clutter out of the network drivers.
David Miller
maintainerFrom: Michael Chan <[email protected]>
Date: Wed, 21 Oct 2015 03:45:08 -0400
Quoted 2 lines
Broadcom ethernet driver for the new family of NetXtreme-C/E ethernet devices.
Please don't have empty blank lines at the end of files, GIT even warns about this.
davem@greenl8ke:~/src/GIT/net-next$ git am --signoff net-next-v4-bnxt_en-New-Broadcom-ethernet-driver..patch Applying: bnxt_en: New Broadcom ethernet driver. /home/davem/src/GIT/net-next/.git/rebase-apply/patch:72: new blank line at EOF. + /home/davem/src/GIT/net-next/.git/rebase-apply/patch:8051: new blank line at EOF. + /home/davem/src/GIT/net-next/.git/rebase-apply/patch:8075: new blank line at EOF. +