enable a different pseudo-vlan mode in the marvell switch (uses a proprietary header...
[openwrt-10.03/.git] / target / linux / atheros / patches-2.6.23 / 200-ar2313_enable_mvswitch.patch
index b209aee0c8127eb446435c65f8c2197c6b045dab..09c17977dfc4ca735841d8f05a9141a2933ec621 100644 (file)
@@ -1,32 +1,41 @@
 Index: linux-2.6.23.16/drivers/net/ar2313/ar2313.c
 ===================================================================
---- linux-2.6.23.16.orig/drivers/net/ar2313/ar2313.c   2008-04-20 10:26:15.000000000 +0200
-+++ linux-2.6.23.16/drivers/net/ar2313/ar2313.c        2008-04-20 10:26:16.000000000 +0200
-@@ -955,7 +955,7 @@
+--- linux-2.6.23.16.orig/drivers/net/ar2313/ar2313.c   2008-04-29 14:51:39.000000000 +0200
++++ linux-2.6.23.16/drivers/net/ar2313/ar2313.c        2008-04-29 14:52:14.000000000 +0200
+@@ -219,7 +219,7 @@
+       dev->do_ioctl = &ar2313_ioctl;
+       // SAMEER: do we need this?
+-      dev->features |= NETIF_F_SG | NETIF_F_HIGHDMA;
++      dev->features |= NETIF_F_HIGHDMA | NETIF_F_HW_CSUM;
+       tasklet_init(&sp->rx_tasklet, rx_tasklet_func, (unsigned long) dev);
+       tasklet_disable(&sp->rx_tasklet);
+@@ -953,9 +953,9 @@
+                                               ((status >> DMA_RX_LEN_SHIFT) & 0x3fff) - CRC_LEN);
                                dev->stats.rx_bytes += skb->len;
-                               skb->protocol = eth_type_trans(skb, dev);
+-                              skb->protocol = eth_type_trans(skb, dev);
++
                                /* pass the packet to upper layers */
 -                              netif_rx(skb);
 +                              sp->rx(skb);
  
                                skb_new->dev = dev;
                                /* 16 bit align */
-@@ -1370,6 +1370,11 @@
+@@ -1370,6 +1370,8 @@
                return PTR_ERR(phydev);
        }
  
-+      if (phydev->netif_rx)
-+              sp->rx = phydev->netif_rx;
-+      else
-+              sp->rx = netif_rx;
++      sp->rx = phydev->netif_rx;
 +
        /* mask with MAC supported features */
        phydev->supported &= (SUPPORTED_10baseT_Half
                | SUPPORTED_10baseT_Full
 Index: linux-2.6.23.16/drivers/net/ar2313/ar2313.h
 ===================================================================
---- linux-2.6.23.16.orig/drivers/net/ar2313/ar2313.h   2008-04-20 10:26:15.000000000 +0200
-+++ linux-2.6.23.16/drivers/net/ar2313/ar2313.h        2008-04-20 10:26:16.000000000 +0200
+--- linux-2.6.23.16.orig/drivers/net/ar2313/ar2313.h   2008-04-29 14:51:39.000000000 +0200
++++ linux-2.6.23.16/drivers/net/ar2313/ar2313.h        2008-04-29 14:52:15.000000000 +0200
 @@ -107,6 +107,8 @@
   */
  struct ar2313_private {