mbox series

[v2,net-next,00/17] net: atlantic: A2 support

Message ID 20200430080445.1142-1-irusskikh@marvell.com
Headers show
Series net: atlantic: A2 support | expand

Message

Igor Russkikh April 30, 2020, 8:04 a.m. UTC
This patchset adds support for the new generation of Atlantic NICs.

Chip generations are mostly compatible register-wise, but there are still
some differences. Therefore we've made some of first generation (A1) code
non-static to re-use it where possible.

Some pieces are A2 specific, in which case we redefine/extend such APIs.

v2:
 * removed #pragma pack (2 structures require the packed attribute);
 * use defines instead of magic numbers where possible;

v1: https://patchwork.ozlabs.org/cover/1276220/

Dmitry Bogdanov (5):
  net: atlantic: A2 driver-firmware interface
  net: atlantic: minimal A2 HW bindings required for fw_ops
  net: atlantic: minimal A2 fw_ops
  net: atlantic: HW bindings for basic A2 init/deinit hw_ops
  net: atlantic: common functions needed for basic A2 init/deinit hw_ops

Igor Russkikh (8):
  net: atlantic: update company name in the driver description
  net: atlantic: add A2 device IDs
  net: atlantic: add defines for 10M and EEE 100M link mode
  net: atlantic: A2 hw_ops skeleton
  net: atlantic: HW bindings for A2 RFP
  net: atlantic: add A2 RPF hw_ops
  net: atlantic: basic A2 init/deinit hw_ops
  net: atlantic: A2 ingress / egress hw configuration

Mark Starovoytov (3):
  net: atlantic: add hw_soft_reset, hw_prepare to hw_ops
  net: atlantic: make hw_get_regs optional
  net: atlantic: move IS_CHIP_FEATURE to aq_hw.h

Nikita Danilov (1):
  net: atlantic: simplify hw_get_fw_version() usage

 .../net/ethernet/aquantia/atlantic/Makefile   |   4 +
 .../net/ethernet/aquantia/atlantic/aq_cfg.h   |   4 +-
 .../ethernet/aquantia/atlantic/aq_common.h    |  33 +-
 .../ethernet/aquantia/atlantic/aq_ethtool.c   |   3 +
 .../net/ethernet/aquantia/atlantic/aq_hw.h    |  22 +-
 .../net/ethernet/aquantia/atlantic/aq_nic.c   |  43 +-
 .../ethernet/aquantia/atlantic/aq_pci_func.c  |  39 +-
 .../aquantia/atlantic/hw_atl/hw_atl_a0.c      |   4 +-
 .../aquantia/atlantic/hw_atl/hw_atl_b0.c      |  86 +--
 .../aquantia/atlantic/hw_atl/hw_atl_b0.h      |  37 +
 .../aquantia/atlantic/hw_atl/hw_atl_llh.c     |  18 +-
 .../aquantia/atlantic/hw_atl/hw_atl_llh.h     |  10 +-
 .../aquantia/atlantic/hw_atl/hw_atl_utils.c   |  51 +-
 .../aquantia/atlantic/hw_atl/hw_atl_utils.h   |  17 +-
 .../aquantia/atlantic/hw_atl2/hw_atl2.c       | 684 ++++++++++++++++++
 .../aquantia/atlantic/hw_atl2/hw_atl2.h       |  14 +
 .../atlantic/hw_atl2/hw_atl2_internal.h       | 137 ++++
 .../aquantia/atlantic/hw_atl2/hw_atl2_llh.c   | 208 ++++++
 .../aquantia/atlantic/hw_atl2/hw_atl2_llh.h   |  91 +++
 .../atlantic/hw_atl2/hw_atl2_llh_internal.h   | 328 +++++++++
 .../aquantia/atlantic/hw_atl2/hw_atl2_utils.c | 139 ++++
 .../aquantia/atlantic/hw_atl2/hw_atl2_utils.h | 606 ++++++++++++++++
 .../atlantic/hw_atl2/hw_atl2_utils_fw.c       | 341 +++++++++
 23 files changed, 2798 insertions(+), 121 deletions(-)
 create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c
 create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2.h
 create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_internal.h
 create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh.c
 create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh.h
 create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_llh_internal.h
 create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_utils.c
 create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_utils.h
 create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_utils_fw.c