|
@@ -209,7 +209,7 @@ Subject: [PATCH 25/36] NET: MIPS: lantiq: adds xrx200-net
|
|
|
+};
|
|
+};
|
|
|
--- /dev/null
|
|
--- /dev/null
|
|
|
+++ b/drivers/net/ethernet/lantiq_xrx200.c
|
|
+++ b/drivers/net/ethernet/lantiq_xrx200.c
|
|
|
-@@ -0,0 +1,1850 @@
|
|
|
|
|
|
|
+@@ -0,0 +1,1851 @@
|
|
|
+/*
|
|
+/*
|
|
|
+ * This program is free software; you can redistribute it and/or modify it
|
|
+ * This program is free software; you can redistribute it and/or modify it
|
|
|
+ * under the terms of the GNU General Public License version 2 as published
|
|
+ * under the terms of the GNU General Public License version 2 as published
|
|
@@ -1262,6 +1262,7 @@ Subject: [PATCH 25/36] NET: MIPS: lantiq: adds xrx200-net
|
|
|
+ struct xrx200_chan *ch;
|
|
+ struct xrx200_chan *ch;
|
|
|
+ struct ltq_dma_desc *desc;
|
|
+ struct ltq_dma_desc *desc;
|
|
|
+ u32 byte_offset;
|
|
+ u32 byte_offset;
|
|
|
|
|
++ u16 port_map = 0;
|
|
|
+ int ret = NETDEV_TX_OK;
|
|
+ int ret = NETDEV_TX_OK;
|
|
|
+ int len;
|
|
+ int len;
|
|
|
+#ifdef SW_ROUTING
|
|
+#ifdef SW_ROUTING
|
|
@@ -1279,8 +1280,6 @@ Subject: [PATCH 25/36] NET: MIPS: lantiq: adds xrx200-net
|
|
|
+
|
|
+
|
|
|
+#ifdef SW_ROUTING
|
|
+#ifdef SW_ROUTING
|
|
|
+ if (is_multicast_ether_addr(eth_hdr(skb)->h_dest)) {
|
|
+ if (is_multicast_ether_addr(eth_hdr(skb)->h_dest)) {
|
|
|
-+ u16 port_map = priv->port_map;
|
|
|
|
|
-+ special_tag |= PORT_MAP_SEL | PORT_MAP_EN;
|
|
|
|
|
+ if (skb->protocol == htons(ETH_P_8021Q)) {
|
|
+ if (skb->protocol == htons(ETH_P_8021Q)) {
|
|
|
+ u16 vid;
|
|
+ u16 vid;
|
|
|
+ int i;
|
|
+ int i;
|
|
@@ -1294,9 +1293,11 @@ Subject: [PATCH 25/36] NET: MIPS: lantiq: adds xrx200-net
|
|
|
+ }
|
|
+ }
|
|
|
+ }
|
|
+ }
|
|
|
+ }
|
|
+ }
|
|
|
-+ special_tag |= port_map << PORT_MAP_SHIFT;
|
|
|
|
|
+ }
|
|
+ }
|
|
|
-+ special_tag |= priv->port_map << PORT_MAP_SHIFT;
|
|
|
|
|
|
|
++ if (port_map) {
|
|
|
|
|
++ special_tag |= (port_map << PORT_MAP_SHIFT) |
|
|
|
|
|
++ PORT_MAP_SEL | PORT_MAP_EN;
|
|
|
|
|
++ }
|
|
|
+ if(priv->wan)
|
|
+ if(priv->wan)
|
|
|
+ special_tag |= (1 << DPID_SHIFT);
|
|
+ special_tag |= (1 << DPID_SHIFT);
|
|
|
+ if(skb_headroom(skb) < 4) {
|
|
+ if(skb_headroom(skb) < 4) {
|