-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
David VomLehn says: ==================== net: ethernet: aquantia: Add AQtion 2.5/5 GB NIC driver 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. v7 o Removed unnecessary cast from memory allocation function (aq_ring.c). v8 o Switched to using kcalloc instead kzalloc. o Now provide bus_info for ethtool o Used div() to avoid __bad_udelay build error. Signed-off-by: Alexander Loktionov <Alexander.Loktionov@aquantia.com> Signed-off-by: Dmitrii Tarakanov <Dmitrii.Tarakanov@aquantia.com> Signed-off-by: Pavel Belous <Pavel.Belous@aquantia.com> Signed-off-by: David M. VomLehn <vomlehn@texas.net> ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
- Loading branch information
Showing
37 changed files
with
11,085 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# | ||
# aQuantia device configuration | ||
# | ||
|
||
config NET_VENDOR_AQUANTIA | ||
bool "aQuantia devices" | ||
default y | ||
---help--- | ||
Set this to y if you have an Ethernet network cards that uses the aQuantia | ||
AQC107/AQC108 chipset. | ||
|
||
This option does not build any drivers; it casues the aQuantia | ||
drivers that can be built to appear in the list of Ethernet drivers. | ||
|
||
|
||
if NET_VENDOR_AQUANTIA | ||
|
||
config AQTION | ||
tristate "aQuantia AQtion(tm) Support" | ||
depends on PCI && X86_64 | ||
---help--- | ||
This enables the support for the aQuantia AQtion(tm) Ethernet card. | ||
|
||
endif # NET_VENDOR_AQUANTIA |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# | ||
# Makefile for the aQuantia device drivers. | ||
# | ||
|
||
obj-$(CONFIG_AQTION) += atlantic/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
################################################################################ | ||
# | ||
# aQuantia Ethernet Controller AQtion Linux Driver | ||
# Copyright(c) 2014-2017 aQuantia Corporation. | ||
# | ||
# This program is free software; you can redistribute it and/or modify it | ||
# under the terms and conditions of the GNU General Public License, | ||
# version 2, as published by the Free Software Foundation. | ||
# | ||
# This program is distributed in the hope it will be useful, but WITHOUT | ||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
# more details. | ||
# | ||
# You should have received a copy of the GNU General Public License along | ||
# with this program. If not, see <http://www.gnu.org/licenses/>. | ||
# | ||
# The full GNU General Public License is included in this distribution in | ||
# the file called "COPYING". | ||
# | ||
# Contact Information: <rdc-drv@aquantia.com> | ||
# aQuantia Corporation, 105 E. Tasman Dr. San Jose, CA 95134, USA | ||
# | ||
################################################################################ | ||
|
||
# | ||
# Makefile for the AQtion(tm) Ethernet driver | ||
# | ||
|
||
obj-$(CONFIG_AQTION) += atlantic.o | ||
|
||
atlantic-objs := aq_main.o \ | ||
aq_nic.o \ | ||
aq_pci_func.o \ | ||
aq_vec.o \ | ||
aq_ring.o \ | ||
aq_hw_utils.o \ | ||
aq_ethtool.o \ | ||
hw_atl/hw_atl_a0.o \ | ||
hw_atl/hw_atl_b0.o \ | ||
hw_atl/hw_atl_utils.o \ | ||
hw_atl/hw_atl_llh.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
/* | ||
* aQuantia Corporation Network Driver | ||
* Copyright (C) 2014-2017 aQuantia Corporation. All rights reserved | ||
* | ||
* This program is free software; you can redistribute it and/or modify it | ||
* under the terms and conditions of the GNU General Public License, | ||
* version 2, as published by the Free Software Foundation. | ||
*/ | ||
|
||
/* File aq_cfg.h: Definition of configuration parameters and constants. */ | ||
|
||
#ifndef AQ_CFG_H | ||
#define AQ_CFG_H | ||
|
||
#define AQ_CFG_VECS_DEF 4U | ||
#define AQ_CFG_TCS_DEF 1U | ||
|
||
#define AQ_CFG_TXDS_DEF 4096U | ||
#define AQ_CFG_RXDS_DEF 1024U | ||
|
||
#define AQ_CFG_IS_POLLING_DEF 0U | ||
|
||
#define AQ_CFG_FORCE_LEGACY_INT 0U | ||
|
||
#define AQ_CFG_IS_INTERRUPT_MODERATION_DEF 1U | ||
#define AQ_CFG_INTERRUPT_MODERATION_RATE_DEF 0xFFFFU | ||
#define AQ_CFG_IRQ_MASK 0x1FFU | ||
|
||
#define AQ_CFG_VECS_MAX 8U | ||
#define AQ_CFG_TCS_MAX 8U | ||
|
||
#define AQ_CFG_TX_FRAME_MAX (16U * 1024U) | ||
#define AQ_CFG_RX_FRAME_MAX (4U * 1024U) | ||
|
||
/* LRO */ | ||
#define AQ_CFG_IS_LRO_DEF 1U | ||
|
||
/* RSS */ | ||
#define AQ_CFG_RSS_INDIRECTION_TABLE_MAX 128U | ||
#define AQ_CFG_RSS_HASHKEY_SIZE 320U | ||
|
||
#define AQ_CFG_IS_RSS_DEF 1U | ||
#define AQ_CFG_NUM_RSS_QUEUES_DEF AQ_CFG_VECS_DEF | ||
#define AQ_CFG_RSS_BASE_CPU_NUM_DEF 0U | ||
|
||
#define AQ_CFG_PCI_FUNC_MSIX_IRQS 9U | ||
#define AQ_CFG_PCI_FUNC_PORTS 2U | ||
|
||
#define AQ_CFG_SERVICE_TIMER_INTERVAL (2 * HZ) | ||
#define AQ_CFG_POLLING_TIMER_INTERVAL ((unsigned int)(2 * HZ)) | ||
|
||
#define AQ_CFG_SKB_FRAGS_MAX 32U | ||
|
||
#define AQ_CFG_NAPI_WEIGHT 64U | ||
|
||
#define AQ_CFG_MULTICAST_ADDRESS_MAX 32U | ||
|
||
/*#define AQ_CFG_MAC_ADDR_PERMANENT {0x30, 0x0E, 0xE3, 0x12, 0x34, 0x56}*/ | ||
|
||
#define AQ_CFG_FC_MODE 3U | ||
|
||
#define AQ_CFG_SPEED_MSK 0xFFFFU /* 0xFFFFU==auto_neg */ | ||
|
||
#define AQ_CFG_IS_AUTONEG_DEF 1U | ||
#define AQ_CFG_MTU_DEF 1514U | ||
|
||
#define AQ_CFG_LOCK_TRYS 100U | ||
|
||
#define AQ_CFG_DRV_AUTHOR "aQuantia" | ||
#define AQ_CFG_DRV_DESC "aQuantia Corporation(R) Network Driver" | ||
#define AQ_CFG_DRV_NAME "aquantia" | ||
#define AQ_CFG_DRV_VERSION __stringify(NIC_MAJOR_DRIVER_VERSION)"."\ | ||
__stringify(NIC_MINOR_DRIVER_VERSION)"."\ | ||
__stringify(NIC_BUILD_DRIVER_VERSION)"."\ | ||
__stringify(NIC_REVISION_DRIVER_VERSION) | ||
|
||
#endif /* AQ_CFG_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
/* | ||
* aQuantia Corporation Network Driver | ||
* Copyright (C) 2014-2017 aQuantia Corporation. All rights reserved | ||
* | ||
* This program is free software; you can redistribute it and/or modify it | ||
* under the terms and conditions of the GNU General Public License, | ||
* version 2, as published by the Free Software Foundation. | ||
*/ | ||
|
||
/* File aq_common.h: Basic includes for all files in project. */ | ||
|
||
#ifndef AQ_COMMON_H | ||
#define AQ_COMMON_H | ||
|
||
#include <linux/etherdevice.h> | ||
#include <linux/pci.h> | ||
|
||
#include "ver.h" | ||
#include "aq_nic.h" | ||
#include "aq_cfg.h" | ||
#include "aq_utils.h" | ||
|
||
#endif /* AQ_COMMON_H */ |
Oops, something went wrong.