diff options
author | Alexandros C. Couloumbis <alex@ozo.com> | 2010-07-30 09:59:13 +0000 |
---|---|---|
committer | Alexandros C. Couloumbis <alex@ozo.com> | 2010-07-30 09:59:13 +0000 |
commit | e71a04cac15b4a8b5c8f1b64e9e53f7dc8951f33 (patch) | |
tree | fffc9237b28d06ae341bc9bfa95071dcf6841f4e /target/linux/atheros/patches-2.6.32/110-ar2313_ethernet.patch | |
parent | ff71f10390c6c27e04e631cff4d699632d5b3ddd (diff) | |
download | master-187ad058-e71a04cac15b4a8b5c8f1b64e9e53f7dc8951f33.tar.gz master-187ad058-e71a04cac15b4a8b5c8f1b64e9e53f7dc8951f33.tar.bz2 master-187ad058-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.32/110-ar2313_ethernet.patch')
-rw-r--r-- | target/linux/atheros/patches-2.6.32/110-ar2313_ethernet.patch | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/target/linux/atheros/patches-2.6.32/110-ar2313_ethernet.patch b/target/linux/atheros/patches-2.6.32/110-ar2313_ethernet.patch index 7e6bc91a24..22fadd05fd 100644 --- a/target/linux/atheros/patches-2.6.32/110-ar2313_ethernet.patch +++ b/target/linux/atheros/patches-2.6.32/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); |