From: Paul Spooren <mail@aparcar.org>
Date: Sat, 30 Jul 2022 18:25:32 +0000 (+0200)
Subject: realtek: skip SFP ports in PoE setup
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=ead7e5b4c3a4043aa97cec6b08ae2f70f54834d3;p=openwrt%2Fstaging%2Fjogo.git

realtek: skip SFP ports in PoE setup

The function `ucidef_set_poe` receives a list of ports to add to the PoE array.
Since switches have many ports the varibale `lan_list` is passed instead of
writing every single lan port. However, this list includes partly SFP ports
which are unrelated to PoE.

This commits adds the option to add a third parameter to manually exclide
interfaces, usually the last two.

Signed-off-by: Paul Spooren <mail@aparcar.org>
[Replace glob by regex to be more specific about matching characters]
Signed-off-by: Sander Vanheule <sander@svanheule.net>
---

diff --git a/target/linux/realtek/base-files/etc/board.d/02_network b/target/linux/realtek/base-files/etc/board.d/02_network
index 5356bcac65..87d772cf84 100644
--- a/target/linux/realtek/base-files/etc/board.d/02_network
+++ b/target/linux/realtek/base-files/etc/board.d/02_network
@@ -8,6 +8,9 @@ ucidef_set_poe() {
 		json_add_string "budget" "$1"
 		json_select_array ports
 			for port in $2; do
+				if [ -n "$3" -a -n "$(expr "$3" : "\(.\+[[:space:]]\)\{0,1\}$port\([[:space:]].*\|\$\)")" ]; then
+					continue # skip ports passed via $3
+				fi
 				json_add_string "" "$port"
 			done
 		json_select ..
@@ -57,13 +60,13 @@ done
 
 case $board in
 netgear,gs110tpp-v1)
-	ucidef_set_poe 130 "$lan_list"
+	ucidef_set_poe 130 "$lan_list" "lan9 lan10"
 	;;
 netgear,gs310tp-v1)
-	ucidef_set_poe 55 "$lan_list"
+	ucidef_set_poe 55 "$lan_list" "lan9 lan10"
 	;;
 zyxel,gs1900-10hp)
-	ucidef_set_poe 77 "$lan_list"
+	ucidef_set_poe 77 "$lan_list" "lan9 lan10"
 	;;
 zyxel,gs1900-8hp-v1|\
 zyxel,gs1900-8hp-v2)
@@ -71,7 +74,7 @@ zyxel,gs1900-8hp-v2)
 	;;
 zyxel,gs1900-24hp-v1|\
 zyxel,gs1900-24hp-v2)
-	ucidef_set_poe 170 "$lan_list"
+	ucidef_set_poe 170 "$lan_list" "lan25 lan26"
 	;;
 esac