From a4ca693c7ea158ac5a804071b46dc3e4d2032fde Mon Sep 17 00:00:00 2001
From: Florian Fainelli <florian@openwrt.org>
Date: Tue, 8 Jan 2008 14:27:48 +0000
Subject: [PATCH] Add back Sitecom WL-105b support

SVN-Revision: 10142
---
 package/broadcom-diag/src/diag.c                | 17 +++++++++++++++++
 .../brcm-2.4/base-files/etc/init.d/netconfig    |  7 +++++++
 .../linux/brcm-2.4/base-files/etc/preinit.arch  |  1 +
 3 files changed, 25 insertions(+)

diff --git a/package/broadcom-diag/src/diag.c b/package/broadcom-diag/src/diag.c
index 60bf612382..e672982dc9 100644
--- a/package/broadcom-diag/src/diag.c
+++ b/package/broadcom-diag/src/diag.c
@@ -115,6 +115,9 @@ enum {
 	DIR130,
 	DIR330,
 	DWL3150,
+
+	/* Sitecom */
+	WL105B,
 };
 
 static void __init bcm4780_init(void) {
@@ -618,6 +621,17 @@ static struct platform_t __initdata platforms[] = {
 			{ .name = "status",	.gpio = 1 << 1},
 		},
 	},
+	/* Double check */
+	[WL105B] = {
+		.name	= "Sitecom WL-105b",
+		.buttons	= {
+			{ .name = "reset",	.gpio = 1 << 10},
+		},
+		.leds	  = {
+			{ .name = "wlan",	.gpio = 1 << 4},
+			{ .name = "power",	.gpio = 1 << 3},
+		},
+	},
 };
 
 static struct platform_t __init *platform_detect(void)
@@ -730,6 +744,9 @@ static struct platform_t __init *platform_detect(void)
 				(simple_strtoul(getvar("et1phyaddr"), NULL, 0) == 10))
 				return &platforms[WL300G];
 		}
+		/* Sitecom WL-105b */
+		if (!strncmp(boardnum, "2", 1) && simple_strtoul(getvar("GemtekPmonVer"), NULL, 0) == 1)
+			return &platforms[WL105B];
 
 		/* unknown asus stuff, probably bcm4702 */
 		if (!strncmp(boardnum, "asusX", 5))
diff --git a/target/linux/brcm-2.4/base-files/etc/init.d/netconfig b/target/linux/brcm-2.4/base-files/etc/init.d/netconfig
index 643ba35d31..b207bd45a8 100755
--- a/target/linux/brcm-2.4/base-files/etc/init.d/netconfig
+++ b/target/linux/brcm-2.4/base-files/etc/init.d/netconfig
@@ -105,6 +105,13 @@ start() {
 			c["wan_ifname"]=""
 		}
 
+		# Sitecom WL-105b
+		if ((nvram["boardum"] == "2") && \
+			(nvram["GemtekPmonVer"] == "1")) {
+			c["lan_ifname"]="eth0"
+			c["wan_ifname"]=""
+		}
+
 		# ASUS WL-700gE
 		# These are actually same as defaults above. For some reason this script applies
 		# Generic BCM94704 settings instead so we revert to proper settings here.
diff --git a/target/linux/brcm-2.4/base-files/etc/preinit.arch b/target/linux/brcm-2.4/base-files/etc/preinit.arch
index 43df591ab7..5127e6088b 100755
--- a/target/linux/brcm-2.4/base-files/etc/preinit.arch
+++ b/target/linux/brcm-2.4/base-files/etc/preinit.arch
@@ -34,6 +34,7 @@ case "$(cat /proc/diag/model)" in
 	"ASUS WL-HDD") ifname=eth1;;
 	"ASUS WL-300g") ifname=eth1;;
 	"ASUS (unknown, BCM4702)") ifname=eth1;;
+	"Sitecom WL-105b") ifname=eth1;;
 esac
 
 failsafe_ip
-- 
2.30.2