[kernel] rename 014-samsung_flash patch to a better name, thanks maddes
[openwrt.git] / target / linux / atheros / patches-2.6.35 / 110-ar2313_ethernet.patch
index 5c6e556..ddd3eb1 100644 (file)
@@ -25,7 +25,7 @@
  obj-$(CONFIG_DECLANCE) += declance.o
 --- /dev/null
 +++ b/drivers/net/ar231x.c
-@@ -0,0 +1,1263 @@
+@@ -0,0 +1,1278 @@
 +/*
 + * ar231x.c: Linux driver for the Atheros AR231x Ethernet device.
 + *
 +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);
 +#endif
 +
 +static const struct net_device_ops ar231x_ops = {
-+      .ndo_open = ar231x_open,
-+      .ndo_stop = ar231x_close,
-+      .ndo_start_xmit = ar231x_start_xmit,
++      .ndo_open               = ar231x_open,
++      .ndo_stop               = ar231x_close,
++      .ndo_start_xmit         = ar231x_start_xmit,
 +      .ndo_set_multicast_list = ar231x_multicast_list,
-+      .ndo_do_ioctl = ar231x_ioctl,
++      .ndo_do_ioctl           = ar231x_ioctl,
++      .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)
 +              filter |= MAC_CONTROL_PR;
 +      else
 +              filter &= ~MAC_CONTROL_PR;
-+      if ((dev->flags & IFF_ALLMULTI) || (dev->mc_count > 0))
++      if ((dev->flags & IFF_ALLMULTI) || (netdev_mc_count(dev) > 0))
 +              filter |= MAC_CONTROL_PM;
 +      else
 +              filter &= ~MAC_CONTROL_PM;
 +      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);
This page took 0.035819 seconds and 4 git commands to generate.