aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/atheros/patches-2.6.34
diff options
context:
space:
mode:
authorAlexandros C. Couloumbis <alex@ozo.com>2010-07-30 09:59:13 +0000
committerAlexandros C. Couloumbis <alex@ozo.com>2010-07-30 09:59:13 +0000
commite71a04cac15b4a8b5c8f1b64e9e53f7dc8951f33 (patch)
treefffc9237b28d06ae341bc9bfa95071dcf6841f4e /target/linux/atheros/patches-2.6.34
parentff71f10390c6c27e04e631cff4d699632d5b3ddd (diff)
downloadupstream-e71a04cac15b4a8b5c8f1b64e9e53f7dc8951f33.tar.gz
upstream-e71a04cac15b4a8b5c8f1b64e9e53f7dc8951f33.tar.bz2
upstream-e71a04cac15b4a8b5c8f1b64e9e53f7dc8951f33.zip
[atheros] add missing bits & bytes from r22412
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22416 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/atheros/patches-2.6.34')
-rw-r--r--target/linux/atheros/patches-2.6.34/110-ar2313_ethernet.patch14
1 files changed, 13 insertions, 1 deletions
diff --git a/target/linux/atheros/patches-2.6.34/110-ar2313_ethernet.patch b/target/linux/atheros/patches-2.6.34/110-ar2313_ethernet.patch
index 7db1d992b1..2dfef958f9 100644
--- a/target/linux/atheros/patches-2.6.34/110-ar2313_ethernet.patch
+++ b/target/linux/atheros/patches-2.6.34/110-ar2313_ethernet.patch
@@ -25,7 +25,7 @@
obj-$(CONFIG_DECLANCE) += declance.o
--- /dev/null
+++ b/drivers/net/ar231x.c
-@@ -0,0 +1,1266 @@
+@@ -0,0 +1,1278 @@
+/*
+ * ar231x.c: Linux driver for the Atheros AR231x Ethernet device.
+ *
@@ -170,6 +170,7 @@
+static void rx_tasklet_func(unsigned long data);
+static void rx_tasklet_cleanup(struct net_device *dev);
+static void ar231x_multicast_list(struct net_device *dev);
++static void ar231x_tx_timeout(struct net_device *dev);
+
+static int ar231x_mdiobus_read(struct mii_bus *bus, int phy_addr, int regnum);
+static int ar231x_mdiobus_write(struct mii_bus *bus, int phy_addr, int regnum, u16 value);
@@ -190,6 +191,7 @@
+ .ndo_change_mtu = eth_change_mtu,
+ .ndo_validate_addr = eth_validate_addr,
+ .ndo_set_mac_address = eth_mac_addr,
++ .ndo_tx_timeout = ar231x_tx_timeout,
+};
+
+int __init ar231x_probe(struct platform_device *pdev)
@@ -1039,6 +1041,16 @@
+ return 0;
+}
+
++static void ar231x_tx_timeout(struct net_device *dev)
++{
++ struct ar231x_private *sp = netdev_priv(dev);
++ unsigned long flags;
++
++ spin_lock_irqsave(&sp->lock, flags);
++ ar231x_restart(dev);
++ spin_unlock_irqrestore(&sp->lock, flags);
++}
++
+static void ar231x_halt(struct net_device *dev)
+{
+ struct ar231x_private *sp = netdev_priv(dev);