Skip to contentSkip to conversation

bnxt_en: New Broadcom ethernet driver.

PATCH Superseded Michael Chan 3 participants 3 messages Oct 21, 2015 – Oct 22, 2015

Subsystems (3)

v4 of 5 Superseded Latest is v5 →

lore
Share & tools
lore
#0 lore raw

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
index e930aa9..67a7d52 100644
@@ -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
index e2a958a..00584d7 100644
@@ -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
new file mode 100644
index 0000000..55b9815
@@ -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
new file mode 100644
index 0000000..0567c73

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
new file mode 100644
index 0000000..0b430f1

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.

#1 lore raw

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.

maintainer
#2 lore raw
In reply to Michael Chan

From: 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.
+