Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 79691192 authored by Hauke Mehrtens's avatar Hauke Mehrtens Committed by David S. Miller
Browse files

net: dsa: Add Lantiq / Intel GSWIP tag support



This handles the tag added by the PMAC on the VRX200 SoC line.

The GSWIP uses internally a GSWIP special tag which is located after the
Ethernet header. The PMAC which connects the GSWIP to the CPU converts
this special tag used by the GSWIP into the PMAC special tag which is
added in front of the Ethernet header.

This was tested with GSWIP 2.1 found in the VRX200 SoCs, other GSWIP
versions use slightly different PMAC special tags.

Signed-off-by: default avatarHauke Mehrtens <hauke@hauke-m.de>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent cc973aec
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -8167,6 +8167,12 @@ S: Maintained
F:	net/l3mdev
F:	include/net/l3mdev.h

LANTIQ / INTEL Ethernet drivers
M:	Hauke Mehrtens <hauke@hauke-m.de>
L:	netdev@vger.kernel.org
S:	Maintained
F:	net/dsa/tag_gswip.c

LANTIQ MIPS ARCHITECTURE
M:	John Crispin <john@phrozen.org>
L:	linux-mips@linux-mips.org
+1 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ enum dsa_tag_protocol {
	DSA_TAG_PROTO_BRCM_PREPEND,
	DSA_TAG_PROTO_DSA,
	DSA_TAG_PROTO_EDSA,
	DSA_TAG_PROTO_GSWIP,
	DSA_TAG_PROTO_KSZ,
	DSA_TAG_PROTO_LAN9303,
	DSA_TAG_PROTO_MTK,
+3 −0
Original line number Diff line number Diff line
@@ -38,6 +38,9 @@ config NET_DSA_TAG_DSA
config NET_DSA_TAG_EDSA
	bool

config NET_DSA_TAG_GSWIP
	bool

config NET_DSA_TAG_KSZ
	bool

+1 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ dsa_core-$(CONFIG_NET_DSA_TAG_BRCM) += tag_brcm.o
dsa_core-$(CONFIG_NET_DSA_TAG_BRCM_PREPEND) += tag_brcm.o
dsa_core-$(CONFIG_NET_DSA_TAG_DSA) += tag_dsa.o
dsa_core-$(CONFIG_NET_DSA_TAG_EDSA) += tag_edsa.o
dsa_core-$(CONFIG_NET_DSA_TAG_GSWIP) += tag_gswip.o
dsa_core-$(CONFIG_NET_DSA_TAG_KSZ) += tag_ksz.o
dsa_core-$(CONFIG_NET_DSA_TAG_LAN9303) += tag_lan9303.o
dsa_core-$(CONFIG_NET_DSA_TAG_MTK) += tag_mtk.o
+3 −0
Original line number Diff line number Diff line
@@ -52,6 +52,9 @@ const struct dsa_device_ops *dsa_device_ops[DSA_TAG_LAST] = {
#ifdef CONFIG_NET_DSA_TAG_EDSA
	[DSA_TAG_PROTO_EDSA] = &edsa_netdev_ops,
#endif
#ifdef CONFIG_NET_DSA_TAG_GSWIP
	[DSA_TAG_PROTO_GSWIP] = &gswip_netdev_ops,
#endif
#ifdef CONFIG_NET_DSA_TAG_KSZ
	[DSA_TAG_PROTO_KSZ] = &ksz_netdev_ops,
#endif
Loading