realtek: 6.6: copy patch net-dsa-add-rtl838x-support-for-tag-trailer
authorMarkus Stockhausen <markus.stockhausen@gmx.de>
Mon, 9 Sep 2024 12:11:13 +0000 (08:11 -0400)
committerSander Vanheule <sander@svanheule.net>
Sat, 14 Sep 2024 18:02:52 +0000 (20:02 +0200)
Copy the patch file to 6.6. Reorder it in the 7xx range.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
target/linux/realtek/patches-6.6/722-net-dsa-add-rtl838x-support-for-tag-trailer.patch [new file with mode: 0644]

diff --git a/target/linux/realtek/patches-6.6/722-net-dsa-add-rtl838x-support-for-tag-trailer.patch b/target/linux/realtek/patches-6.6/722-net-dsa-add-rtl838x-support-for-tag-trailer.patch
new file mode 100644 (file)
index 0000000..0cb784f
--- /dev/null
@@ -0,0 +1,61 @@
+From 2b88563ee5aafd9571d965b7f2093a0f58d98a31 Mon Sep 17 00:00:00 2001
+From: John Crispin <john@phrozen.org>
+Date: Thu, 26 Nov 2020 12:02:21 +0100
+Subject: net: dsa: Add rtl838x support for tag trailer
+
+* rename the target to realtek
+* add refactored DSA driver
+* add latest gpio driver
+* lots of arch cleanups
+* new irq driver
+* additional boards
+
+Submitted-by: Bert Vermeulen <bert@biot.com>
+Submitted-by: Birger Koblitz <mail@birger-koblitz.de>
+Submitted-by: Sander Vanheule <sander@svanheule.net>
+Submitted-by: Bjørn Mork <bjorn@mork.no>
+Submitted-by: John Crispin <john@phrozen.org>
+---
+ net/dsa/tag_trailer.c                         | 16 +++++++++++++-
+ 1 file changed, 17 insertions(+), 1 deletion(-)
+
+--- a/net/dsa/tag_trailer.c
++++ b/net/dsa/tag_trailer.c
+@@ -17,7 +17,12 @@ static struct sk_buff *trailer_xmit(stru
+       trailer = skb_put(skb, 4);
+       trailer[0] = 0x80;
++
++#ifdef CONFIG_NET_DSA_RTL83XX
++      trailer[1] = dp->index;
++#else
+       trailer[1] = 1 << dp->index;
++#endif /* CONFIG_NET_DSA_RTL838X */
+       trailer[2] = 0x10;
+       trailer[3] = 0x00;
+@@ -33,12 +38,23 @@ static struct sk_buff *trailer_rcv(struc
+               return NULL;
+       trailer = skb_tail_pointer(skb) - 4;
++
++#ifdef CONFIG_NET_DSA_RTL83XX
++      if (trailer[0] != 0x80 || (trailer[1] & 0x80) != 0x00 ||
++          (trailer[2] & 0xef) != 0x00 || trailer[3] != 0x00)
++              return NULL;
++
++      if (trailer[1] & 0x40)
++              skb->offload_fwd_mark = 1;
++
++      source_port = trailer[1] & 0x3f;
++#else
+       if (trailer[0] != 0x80 || (trailer[1] & 0xf8) != 0x00 ||
+           (trailer[2] & 0xef) != 0x00 || trailer[3] != 0x00)
+               return NULL;
+       source_port = trailer[1] & 7;
+-
++#endif
+       skb->dev = dsa_master_find_slave(dev, 0, source_port);
+       if (!skb->dev)
+               return NULL;