From 1c27b386135765feb52d6e3be9e21e62f62d77d8 Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Sat, 26 Jul 2008 16:10:44 +0000 Subject: [PATCH] [brcm-2.4] fix Dell TrueMobile 2300 v1/v2 detection and network configuration (closes #2788) git-svn-id: svn://svn.openwrt.org/openwrt/trunk@11935 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/broadcom-diag/src/diag.c | 24 +++++++++++++++---- .../brcm-2.4/base-files/etc/init.d/netconfig | 7 +++++- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/package/broadcom-diag/src/diag.c b/package/broadcom-diag/src/diag.c index bbc0bfadac..8f2a0c1705 100644 --- a/package/broadcom-diag/src/diag.c +++ b/package/broadcom-diag/src/diag.c @@ -99,6 +99,7 @@ enum { /* Dell */ TM2300, + TM2300V2, /* Motorola */ WE800G, @@ -566,6 +567,16 @@ static struct platform_t __initdata platforms[] = { { .name = "power", .gpio = 1 << 7, .polarity = REVERSE }, }, }, + [TM2300V2] = { + .name = "Dell TrueMobile 2300 v2", + .buttons = { + { .name = "reset", .gpio = 1 << 0 }, + }, + .leds = { + { .name = "wlan", .gpio = 1 << 6, .polarity = REVERSE }, + { .name = "power", .gpio = 1 << 7, .polarity = REVERSE }, + }, + }, /* Motorola */ [WE800G] = { .name = "Motorola WE800G", @@ -747,8 +758,8 @@ static struct platform_t __init *platform_detect(void) if ((buf = nvram_get("ModelId"))) { if (!strcmp(buf, "WR850GP")) return &platforms[WR850GP]; - if (!strcmp(buf,"WX-5565")) - return &platforms[TM2300]; + if (!strcmp(buf, "WX-5565") && !strcmp(getvar("boardtype"),"bcm94710ap")) + return &platforms[TM2300]; /* Dell TrueMobile 2300 */ if (startswith(buf,"WE800G")) /* WE800G* */ return &platforms[WE800G]; } @@ -804,6 +815,11 @@ static struct platform_t __init *platform_detect(void) return &platforms[WRT54G]; } + if (!strcmp(boardnum, "44") || !strcmp(boardnum, "44\r")) { + if (!strcmp(boardtype,"0x0101") || !strcmp(boardtype, "0x0101\r")) + return &platforms[TM2300V2]; /* Dell TrueMobile 2300 v2 */ + } + if (!strcmp(boardnum, "45")) { /* ASUS */ if (!strcmp(boardtype,"0x042f")) return &platforms[WL500GP]; @@ -818,7 +834,7 @@ static struct platform_t __init *platform_detect(void) if (!strcmp(getvar("boardtype"), "0x0101") && !strcmp(getvar("boardrev"), "0x10")) /* SE505V2 With Modified CFE */ return &platforms[SE505V2]; - + } else { /* PMON based - old stuff */ if ((simple_strtoul(getvar("GemtekPmonVer"), NULL, 0) == 9) && (simple_strtoul(getvar("et0phyaddr"), NULL, 0) == 30)) { @@ -1010,7 +1026,7 @@ static irqreturn_t button_handler(int irq, void *dev_id, struct pt_regs *regs) changed &= ~gpio_outen(0, 0); - for (b = platform.buttons; b->name; b++) { + for (b = platform.buttons; b->name; b++) { struct event_t *event; if (!(b->gpio & changed)) continue; 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 ec25543ee7..44e2de25c9 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 @@ -65,8 +65,13 @@ start() { c["vlan0ports"] = "0 1 2 3 5*" c["vlan1ports"] = "4 5" } - if (model == "Dell TrueMobile 2300") { + c["lan_ifname"] = "eth0" + c["wan_ifname"] = "eth1" + c["vlan0ports"] = "0 1 2 3 4 5u" + c["vlan1ports"] = "" + } + if (model == "Dell TrueMobile 2300 v2") { c["vlan0ports"] = "0 1 2 3 5*" c["vlan1ports"] = "4 5" }