net: Add alx driver for Atheros AR8161 and AR8162 (Closes: #699129)

Mark as staging, since it has not been accepted upstream.
Define some trivial networking features to support it.

svn path=/dists/sid/linux/; revision=19781
This commit is contained in:
Ben Hutchings 2013-01-28 00:22:35 +00:00
parent 3e636afadb
commit 5b88249fcc
8 changed files with 13672 additions and 0 deletions

2
debian/changelog vendored
View File

@ -100,6 +100,8 @@ linux (3.2.37-1) UNRELEASED; urgency=low
- fix hole punch failure when depth is greater than 0
- fix kernel BUG on large-scale rm -rf commands
* md: protect against crash upon fsync on ro array (Closes: #696650)
* net: Add alx driver for Atheros AR8161 and AR8162 (Closes: #699129)
- Mark as staging, since it has not been accepted upstream
[ Aurelien Jarno ]
* [armhf/vexpress] Add kernel udebs.

View File

@ -1757,6 +1757,7 @@ CONFIG_ATL2=m
CONFIG_ATL1=m
CONFIG_ATL1E=m
CONFIG_ATL1C=m
CONFIG_ALX=m
##
## file: drivers/net/ethernet/broadcom/Kconfig

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,36 @@
From: Ben Hutchings <ben@decadent.org.uk>
Subject: alx: mark as staging
Date: Sun, 27 Jan 2013 23:43:01 +0000
Bug-Debian: http://bugs.debian.org/699129
Forwarded: not-needed
Since alx has not been accepted upstream (or even re-submitted for
many months), it should be treated as staging.
Also remove the netdev list and supported flag from its MAINTAINERS
entry.
---
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1326,10 +1326,8 @@ M: Cloud Ren <cjren@qca.qualcomm.com>
M: Stevent Li <steventl@qca.qualcomm.com>
M: Wu Ken <kenw@qca.qualcomm.com>
M: David Liu <dwliu@qca.qualcomm.com>
-L: netdev@vger.kernel.org
L: nic-devel@qualcomm.com
W: http://wireless.kernel.org/en/users/Drivers/ethernet/alx
-S: Supported
F: drivers/net/ethernet/atheros/alx/
ATM
--- a/drivers/net/ethernet/atheros/alx/alx_main.c
+++ b/drivers/net/ethernet/atheros/alx/alx_main.c
@@ -41,6 +41,7 @@ MODULE_DEVICE_TABLE(pci, alx_pci_tbl);
MODULE_AUTHOR("Qualcomm Corporation, <nic-devel@qualcomm.com>");
MODULE_DESCRIPTION("Qualcomm Atheros Gigabit Ethernet Driver");
MODULE_LICENSE("Dual BSD/GPL");
+MODULE_INFO(staging, "Y");
static int alx_open_internal(struct alx_adapter *adpt, u32 ctrl);
static void alx_stop_internal(struct alx_adapter *adpt, u32 ctrl);

View File

@ -0,0 +1,71 @@
From: Ben Hutchings <ben@decadent.org.uk>
Subject: alx: remove atl1c devices
Date: Sun, 27 Jan 2013 23:37:52 +0000
Bug-Debian: http://bugs.debian.org/699129
Forwarded: not-needed
When alx was first reviewed, upstream demanded that any changes to
support for the currently supported AR8131/8132/8151/8152 chips be
made as a series of patches, not by deprecating or removing atl1c in a
monolithic patch. Therefore:
Luis R. Rodriguez <mcgrof@frijolero.org> wrote:
> The alx driver is to only support the AR8161 and AR8162
> devices. The older devices are supported through atl1c.
I've also changed the Kconfig help text to reflect this.
---
--- a/drivers/net/ethernet/atheros/Kconfig
+++ b/drivers/net/ethernet/atheros/Kconfig
@@ -56,14 +56,13 @@ config ATL1E
will be called atl1e.
config ATL1C
- tristate "Atheros L1C Gigabit Ethernet support (DEPRECATED)"
+ tristate "Atheros L1C Gigabit Ethernet support (EXPERIMENTAL)"
depends on PCI && EXPERIMENTAL
select CRC32
select NET_CORE
select MII
---help---
This driver supports the Atheros L1C gigabit ethernet adapter.
- This driver is deprecated in favor for the alx (CONFIG_ALX) driver.
This driver supports the following chipsets:
1969:1063 - AR8131 Gigabit Ethernet
@@ -84,18 +83,7 @@ config ALX
select MII
---help---
This driver supports the Atheros L1C/L1D/L1F gigabit ethernet
- adapter. The alx driver is intended to replace completely the
- atl1c driver with proper support and commitment from Qualcomm
- Atheros (QCA). Both atl1c and alx supports the following chipsets:
-
- 1969:1063 - AR8131 Gigabit Ethernet
- 1969:1062 - AR8132 Fast Ethernet (10/100 Mbit/s)
- 1969:2062 - AR8152 v2.0 Fast Ethernet
- 1969:2060 - AR8152 v1.1 Fast Ethernet
- 1969:1073 - AR8151 v1.0 Gigabit Ethernet
- 1969:1083 - AR8151 v2.0 Gigabit Ethernet
-
- Only alx supports the following chipsets:
+ adapter. alx supports the following chipsets:
1969:1091 - AR8161
1969:1090 - AR8162
--- a/drivers/net/ethernet/atheros/alx/alx_main.c
+++ b/drivers/net/ethernet/atheros/alx/alx_main.c
@@ -33,12 +33,6 @@ static const char alx_drv_description[]
#define ALX_ETHER_DEVICE(device_id) {\
PCI_DEVICE(ALX_VENDOR_ID, device_id)}
static DEFINE_PCI_DEVICE_TABLE(alx_pci_tbl) = {
- ALX_ETHER_DEVICE(ALX_DEV_ID_AR8131),
- ALX_ETHER_DEVICE(ALX_DEV_ID_AR8132),
- ALX_ETHER_DEVICE(ALX_DEV_ID_AR8151_V1),
- ALX_ETHER_DEVICE(ALX_DEV_ID_AR8151_V2),
- ALX_ETHER_DEVICE(ALX_DEV_ID_AR8152_V1),
- ALX_ETHER_DEVICE(ALX_DEV_ID_AR8152_V2),
ALX_ETHER_DEVICE(ALX_DEV_ID_AR8161),
ALX_ETHER_DEVICE(ALX_DEV_ID_AR8162),
{0,}

View File

@ -0,0 +1,35 @@
From: Ben Hutchings <ben@decadent.org.uk>
Subject: ethernet: define eth_hw_add_random()
Date: Mon, 28 Jan 2013 00:03:32 +0000
Bug-Debian: http://bugs.debian.org/699129
Forwarded: not-needed
This was defined in commit 1a0d6ae5795c376bae6d012fb25e8341e4c6d5f2
upstream, where it replaced dev_hw_addr_random(). Obviously we
can't remove the latter.
---
--- a/include/linux/etherdevice.h
+++ b/include/linux/etherdevice.h
@@ -154,6 +154,21 @@ static inline void dev_hw_addr_random(st
}
/**
+ * eth_hw_addr_random - Generate software assigned random Ethernet and
+ * set device flag
+ * @dev: pointer to net_device structure
+ *
+ * Generate a random Ethernet address (MAC) to be used by a net device
+ * and set addr_assign_type so the state can be read by sysfs and be
+ * used by userspace.
+ */
+static inline void eth_hw_addr_random(struct net_device *dev)
+{
+ dev->addr_assign_type |= NET_ADDR_RANDOM;
+ random_ether_addr(dev->dev_addr);
+}
+
+/**
* compare_ether_addr - Compare two Ethernet addresses
* @addr1: Pointer to a six-byte array containing the Ethernet address
* @addr2: Pointer other six-byte array containing the Ethernet address

View File

@ -0,0 +1,20 @@
From: Ben Hutchings <ben@decadent.org.uk>
Subject: net: define netdev_features_t
Date: Sun, 27 Jan 2013 23:59:43 +0000
Bug-Debian: http://bugs.debian.org/699129
Forwarded: not-needed
This was added by commit c8f44affb7244f2ac3e703cab13d55ede27621bb upstream.
---
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -57,6 +57,8 @@ struct netpoll_info;
struct phy_device;
/* 802.11 specific */
struct wireless_dev;
+
+typedef u32 netdev_features_t;
/* source back-compat hooks */
#define SET_ETHTOOL_OPS(netdev,ops) \
( (netdev)->ethtool_ops = (ops) )

View File

@ -473,3 +473,11 @@ bugfix/all/ext4-fix-hole-punch-failure-when-depth-is-greater-th.patch
bugfix/all/ext4-fix-kernel-BUG-on-large-scale-rm-rf-commands.patch
bugfix/all/md-protect-against-crash-upon-fsync-on-ro-array.patch
debian/net-avoid-ABI-break-in-3.2.37.patch
features/all/net-define-netdev_features_t.patch
features/all/ethernet-define-eth_hw_addr_random.patch
# alx *still* isn't upstream
features/all/alx/alx-add-new-QCA-ethernet-driver-which-supercedes-atl.patch
features/all/alx/remove-atl1c-devices-from-alx.patch
features/all/alx/mark-as-staging.patch