bnxt_en: New Broadcom ethernet driver.
PATCH v2 1/1 bnxt_en: New Broadcom ethernet driver.
Broadcom ethernet driver for the new family of NetXtreme-C/E ethernet devices.
v2: Fixed all kbuild test rebot 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 | 5821 ++++++++++++++++++++ drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1033 ++++ drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 1149 ++++ 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 | 4707 ++++++++++++++++ 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, 13724 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 +5821 -0
2,969 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt.h new file +1033 -0
1,033 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c new file +1149 -0
1,149 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 +4707 -0
4,707 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.
kbuild test robot
build boturl: https://github.com/0day-ci/linux/commits/Michael-Chan/bnxt_en-New-Broadcom-ethernet-driver/20151014-112018 reproduce:
Hi Michael,
[auto build test WARNING on net-next/master -- if it's inappropriate base, please suggest rules for selecting the more suitable base]
url: https://github.com/0day-ci/linux/commits/Michael-Chan/bnxt_en-New-Broadcom-ethernet-driver/20151014-112018
reproduce:
# apt-get install sparse
make ARCH=x86_64 allmodconfig
make C=1 CF=-D__CHECK_ENDIAN__sparse warnings: (new ones prefixed by >>)
>> drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c:204:20: sparse: incorrect type in assignment (different base types) drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c:204:20: expected restricted __le32 [addressable] [assigned] [usertype] max_bw drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c:204:20: got int [signed] max_tx_rate >> drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c:206:20: sparse: incorrect type in assignment (different base types)
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c:206:20: expected restricted __le32 [addressable] [assigned] [usertype] min_bw
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c:206:20: got int [signed] min_tx_rate
vim +204 drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
198 if (min_tx_rate == vf->min_tx_rate && max_tx_rate == vf->max_tx_rate)
199 return 0;
200 bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_FUNC_CFG, -1, -1);
201 req.vf_id = cpu_to_le16(vf->fw_fid);
202 req.flags = cpu_to_le32(vf->func_flags);
203 req.enables = cpu_to_le32(FUNC_CFG_REQ_ENABLES_MAX_BW);
> 204 req.max_bw = max_tx_rate; 205 req.enables |= cpu_to_le32(FUNC_CFG_REQ_ENABLES_MIN_BW); > 206 req.min_bw = min_tx_rate;
207 rc = hwrm_send_message(bp, &req, sizeof(req), HWRM_CMD_TIMEOUT);
208 if (!rc) {
209 vf->min_tx_rate = min_tx_rate;
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation