From cbcfbee2c407b92766498fbf82d62bbaaff50623 Mon Sep 17 00:00:00 2001
From: Jani Juvan <jani.juvan@iopsys.eu>
Date: Thu, 22 Oct 2020 14:46:48 +0200
Subject: [PATCH] wifi: adding bringup script for disc

---
 .../disc/base-files/etc/init.d/wifi_bringup   | 38 +++++++++++++++++++
 1 file changed, 38 insertions(+)
 create mode 100755 iopsys-brcm63xx-arm/disc/base-files/etc/init.d/wifi_bringup

diff --git a/iopsys-brcm63xx-arm/disc/base-files/etc/init.d/wifi_bringup b/iopsys-brcm63xx-arm/disc/base-files/etc/init.d/wifi_bringup
new file mode 100755
index 000000000..ea56ca70f
--- /dev/null
+++ b/iopsys-brcm63xx-arm/disc/base-files/etc/init.d/wifi_bringup
@@ -0,0 +1,38 @@
+#!/bin/sh /etc/rc.common
+#
+# Load broadcom wifi drivers
+
+
+START=18
+
+# wl.ko taskset thread pid workaround (wl.ko thread gets pid 0 ???)
+taskset_hack() {
+	[ -h /usr/bin/taskset ] && {
+		# since disc uses ro fs, we do an overlay workaround for the workaround for now...
+		mkdir -p /tmp/overlay/bin /tmp/overlay/sbin /tmp/overlay/work
+		mount -t overlay overlay -o lowerdir=/usr/bin,upperdir=/tmp/overlay/bin,workdir=/tmp/overlay/work /usr/bin
+		mount -t overlay overlay -o lowerdir=/usr/sbin,upperdir=/tmp/overlay/sbin,workdir=/tmp/overlay/work /usr/sbin
+
+		mv /usr/bin/taskset /usr/sbin/taskset
+		cat << 'EOT' >> /tmp/overlay/bin/taskset
+#!/bin/sh
+
+[ "$3" -eq "0" ] && set -- "$1" "$2" "$(pgrep -n kthrd)"
+/usr/sbin/taskset $@ || echo "failed to set affinity. rc: $? pid: $(pgrep -n kthrd)"
+return 0
+EOT
+		chmod +x /tmp/overlay/bin/taskset
+	}
+}
+
+boot() {
+	taskset_hack
+
+	# always use the data partition as data
+	mountpoint -q /data || mount -t ubifs ubi:data /data
+
+	/etc/init.d/hndnvram.sh start && \
+		[ -s /data/.kernel_nvram.setting ] && \
+		/etc/init.d/bcm-wlan-drivers.sh start || \
+		echo "Failed to bring up wifi - fix and load wifi drivers manually"
+}
-- 
GitLab