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 -- 2.20.1