From: David VomLehn <voml...@texas.net> This series introduces the AQtion NIC driver for the aQuantia AQC107/AQC108 network devices.
This series introduces the AQtion NIC driver for the aQuantia AQC107/AQC108 network devices. v1: Initial version v2: o Make necessary drivers/net/ethernet changes to integrate software o Drop intermediate atlantic directory o Remove Makefile things only appropriate to out of tree module building v3: o Move changes to drivers/net/ethernet/{Kconfig,Makefile} to the last patch to ensure clean bisection. o Removed inline attribute aq_hw_write_req() as it was defined in only one .c file. o #included pci.h in aq_common.h to get struct pci definition. o Modified code to unlock based execution flow rather than using a flag. o Made a number of functions that were only used in a single file static. o Cleaned up error and return code handling in various places. o Remove AQ_CFG_IP_ALIGN definition. o Other minor code clean up. v4: o Using do_div for 64 bit division. o Modified NIC statistics code. o Using build_skb instead netdev_alloc_skb for single fragment packets. o Removed extra aq_nic.o from Makefile v5: o Removed extra newline at the end of the files. v6: o Removed unnecessary cast from void*. o Reworked strings array for ethtool statistics. o Added stringset == ETH_SS_STATS checking. o AQ_OBJ_HEADER replaced to aq_obj_header_s struct. o AQ_OBJ_SET/TST/CLR macroses replaced to inline functions. o Driver sources placed in to atlantic directory. o Fixed compilation warnings (Make W=1) o Added firmware version checking. o Code cleaning. Signed-off-by: Alexander Loktionov <alexander.loktio...@aquantia.com> Signed-off-by: Dmitrii Tarakanov <dmitrii.taraka...@aquantia.com> Signed-off-by: Pavel Belous <pavel.bel...@aquantia.com> Signed-off-by: David M. VomLehn <voml...@texas.net> --- David VomLehn (13): net: ethernet: aquantia: Make and configuration files. net: ethernet: aquantia: Common functions and definitions net: ethernet: aquantia: Add ring support code net: ethernet: aquantia: Low-level hardware interfaces net: ethernet: aquantia: Support for NIC-specific code net: ethernet: aquantia: Atlantic A0 and B0 specific functions. net: ethernet: aquantia: Vector operations net: ethernet: aquantia: PCI operations net: ethernet: aquantia: Atlantic hardware abstraction layer net: ethernet: aquantia: Hardware interface and utility functions net: ethernet: aquantia: Ethtool support net: ethernet: aquantia: Receive side scaling net: ethernet: aquantia: Integrate AQtion 2.5/5 GB NIC driver drivers/net/ethernet/Kconfig | 1 + drivers/net/ethernet/Makefile | 1 + drivers/net/ethernet/aquantia/Kconfig | 20 + drivers/net/ethernet/aquantia/Makefile | 5 + drivers/net/ethernet/aquantia/atlantic/Kconfig | 9 + drivers/net/ethernet/aquantia/atlantic/Makefile | 42 + drivers/net/ethernet/aquantia/atlantic/aq_cfg.h | 77 + drivers/net/ethernet/aquantia/atlantic/aq_common.h | 23 + .../net/ethernet/aquantia/atlantic/aq_ethtool.c | 258 +++ .../net/ethernet/aquantia/atlantic/aq_ethtool.h | 19 + drivers/net/ethernet/aquantia/atlantic/aq_hw.h | 172 ++ .../net/ethernet/aquantia/atlantic/aq_hw_utils.c | 68 + .../net/ethernet/aquantia/atlantic/aq_hw_utils.h | 47 + drivers/net/ethernet/aquantia/atlantic/aq_main.c | 273 +++ drivers/net/ethernet/aquantia/atlantic/aq_main.h | 17 + drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 935 ++++++++ drivers/net/ethernet/aquantia/atlantic/aq_nic.h | 108 + .../ethernet/aquantia/atlantic/aq_nic_internal.h | 46 + .../net/ethernet/aquantia/atlantic/aq_pci_func.c | 345 +++ .../net/ethernet/aquantia/atlantic/aq_pci_func.h | 34 + drivers/net/ethernet/aquantia/atlantic/aq_ring.c | 376 ++++ drivers/net/ethernet/aquantia/atlantic/aq_ring.h | 157 ++ drivers/net/ethernet/aquantia/atlantic/aq_rss.h | 26 + drivers/net/ethernet/aquantia/atlantic/aq_utils.h | 55 + drivers/net/ethernet/aquantia/atlantic/aq_vec.c | 393 ++++ drivers/net/ethernet/aquantia/atlantic/aq_vec.h | 42 + .../ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c | 905 ++++++++ .../ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.h | 34 + .../aquantia/atlantic/hw_atl/hw_atl_a0_internal.h | 155 ++ .../ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c | 958 ++++++++ .../ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.h | 34 + .../aquantia/atlantic/hw_atl/hw_atl_b0_internal.h | 207 ++ .../ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c | 1394 ++++++++++++ .../ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h | 677 ++++++ .../aquantia/atlantic/hw_atl/hw_atl_llh_internal.h | 2375 ++++++++++++++++++++ .../aquantia/atlantic/hw_atl/hw_atl_utils.c | 569 +++++ .../aquantia/atlantic/hw_atl/hw_atl_utils.h | 210 ++ drivers/net/ethernet/aquantia/atlantic/ver.h | 18 + 38 files changed, 11085 insertions(+) create mode 100644 drivers/net/ethernet/aquantia/Kconfig create mode 100644 drivers/net/ethernet/aquantia/Makefile create mode 100644 drivers/net/ethernet/aquantia/atlantic/Kconfig create mode 100644 drivers/net/ethernet/aquantia/atlantic/Makefile create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_cfg.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_common.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_ethtool.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_hw.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_hw_utils.c create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_hw_utils.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_main.c create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_main.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_nic.c create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_nic.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_nic_internal.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_pci_func.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_ring.c create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_ring.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_rss.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_utils.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_vec.c create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_vec.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0_internal.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0_internal.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c create mode 100644 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.h create mode 100644 drivers/net/ethernet/aquantia/atlantic/ver.h -- 2.9.3