mbox series

[v2,00/15] Add ice driver

Message ID 20180315234802.31336-1-anirudh.venkataramanan@intel.com
Headers show
Series Add ice driver | expand

Message

Anirudh Venkataramanan March 15, 2018, 11:47 p.m. UTC
This patch series adds the ice driver, which will support the Intel(R)
E800 Series of network devices.

This is the first phase in the release of this driver where we implement
basic transmit and receive. The idea behind the multi-phase release is to
aid in code review as well as testing. Subsequent phases will implement
advanced features (like SR-IOV, tunnelling, flow director, QoS, etc.) that
build upon the previous phase(s). Each phase will be submitted as a patch
series.

I cc'd netdev for review since this is a new driver, even though this is
targeted to go through Jeff Kirsher's Intel Wired LAN git tree(s).

v2: Addressed community feedback
  patch #3 : Removed register write based on Shannon's comments
  patch #4 : Change retries value based on Shannon's comments
  patch #6 : Remove reference to "lump" as Shannon suggested
  patch #7 : Add define for magic number as Shannon suggested
  patch #12: Reworked based on multiple comments (Jakub, Stephen, et al.)

Anirudh Venkataramanan (15):
  ice: Add basic driver framework for Intel(R) E800 Series
  ice: Add support for control queues
  ice: Start hardware initialization
  ice: Get switch config, scheduler config and device capabilities
  ice: Get MAC/PHY/link info and scheduler topology
  ice: Initialize PF and setup miscellaneous interrupt
  ice: Add support for VSI allocation and deallocation
  ice: Add support for switch filter programming
  ice: Configure VSIs for Tx/Rx
  ice: Implement transmit and NAPI support
  ice: Add support for VLANs and offloads
  ice: Add stats and ethtool support
  ice: Update Tx scheduler tree for VSI multi-Tx queue support
  ice: Support link events, reset and rebuild
  ice: Implement filter sync, NDO operations and bump version

 Documentation/networking/ice.txt                |   39 +
 MAINTAINERS                                     |    1 +
 drivers/net/ethernet/intel/Kconfig              |   14 +
 drivers/net/ethernet/intel/Makefile             |    1 +
 drivers/net/ethernet/intel/ice/Makefile         |   34 +
 drivers/net/ethernet/intel/ice/ice.h            |  326 ++
 drivers/net/ethernet/intel/ice/ice_adminq_cmd.h | 1366 ++++++
 drivers/net/ethernet/intel/ice/ice_common.c     | 2247 +++++++++
 drivers/net/ethernet/intel/ice/ice_common.h     |  100 +
 drivers/net/ethernet/intel/ice/ice_controlq.c   | 1080 +++++
 drivers/net/ethernet/intel/ice/ice_controlq.h   |  108 +
 drivers/net/ethernet/intel/ice/ice_devids.h     |   33 +
 drivers/net/ethernet/intel/ice/ice_ethtool.c    |  954 ++++
 drivers/net/ethernet/intel/ice/ice_hw_autogen.h |  280 ++
 drivers/net/ethernet/intel/ice/ice_lan_tx_rx.h  |  487 ++
 drivers/net/ethernet/intel/ice/ice_main.c       | 5509 +++++++++++++++++++++++
 drivers/net/ethernet/intel/ice/ice_nvm.c        |  250 +
 drivers/net/ethernet/intel/ice/ice_osdep.h      |   87 +
 drivers/net/ethernet/intel/ice/ice_sched.c      | 1673 +++++++
 drivers/net/ethernet/intel/ice/ice_sched.h      |   57 +
 drivers/net/ethernet/intel/ice/ice_status.h     |   46 +
 drivers/net/ethernet/intel/ice/ice_switch.c     | 1897 ++++++++
 drivers/net/ethernet/intel/ice/ice_switch.h     |  175 +
 drivers/net/ethernet/intel/ice/ice_txrx.c       | 1796 ++++++++
 drivers/net/ethernet/intel/ice/ice_txrx.h       |  206 +
 drivers/net/ethernet/intel/ice/ice_type.h       |  408 ++
 26 files changed, 19174 insertions(+)
 create mode 100644 Documentation/networking/ice.txt
 create mode 100644 drivers/net/ethernet/intel/ice/Makefile
 create mode 100644 drivers/net/ethernet/intel/ice/ice.h
 create mode 100644 drivers/net/ethernet/intel/ice/ice_adminq_cmd.h
 create mode 100644 drivers/net/ethernet/intel/ice/ice_common.c
 create mode 100644 drivers/net/ethernet/intel/ice/ice_common.h
 create mode 100644 drivers/net/ethernet/intel/ice/ice_controlq.c
 create mode 100644 drivers/net/ethernet/intel/ice/ice_controlq.h
 create mode 100644 drivers/net/ethernet/intel/ice/ice_devids.h
 create mode 100644 drivers/net/ethernet/intel/ice/ice_ethtool.c
 create mode 100644 drivers/net/ethernet/intel/ice/ice_hw_autogen.h
 create mode 100644 drivers/net/ethernet/intel/ice/ice_lan_tx_rx.h
 create mode 100644 drivers/net/ethernet/intel/ice/ice_main.c
 create mode 100644 drivers/net/ethernet/intel/ice/ice_nvm.c
 create mode 100644 drivers/net/ethernet/intel/ice/ice_osdep.h
 create mode 100644 drivers/net/ethernet/intel/ice/ice_sched.c
 create mode 100644 drivers/net/ethernet/intel/ice/ice_sched.h
 create mode 100644 drivers/net/ethernet/intel/ice/ice_status.h
 create mode 100644 drivers/net/ethernet/intel/ice/ice_switch.c
 create mode 100644 drivers/net/ethernet/intel/ice/ice_switch.h
 create mode 100644 drivers/net/ethernet/intel/ice/ice_txrx.c
 create mode 100644 drivers/net/ethernet/intel/ice/ice_txrx.h
 create mode 100644 drivers/net/ethernet/intel/ice/ice_type.h