summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package/broadcom-diag/src/diag.c8
-rw-r--r--package/broadcom-diag/src/diag.h1
-rwxr-xr-xtarget/linux/brcm-2.4/base-files/default/etc/init.d/netconfig5
3 files changed, 12 insertions, 2 deletions
diff --git a/package/broadcom-diag/src/diag.c b/package/broadcom-diag/src/diag.c
index e8da3129a8..ef586baaed 100644
--- a/package/broadcom-diag/src/diag.c
+++ b/package/broadcom-diag/src/diag.c
@@ -492,7 +492,7 @@ static struct platform_t __initdata platforms[] = {
.leds = {
{ .name = "power", .gpio = 1 << 1, .polarity = NORMAL },
{ .name = "wlan", .gpio = 1 << 0, .polarity = REVERSE },
- { .name = "dmz", .gpio = 1 << 6, .polarity = REVERSE },
+ { .name = "wan", .gpio = 1 << 6, .polarity = INPUT },
{ .name = "diag", .gpio = 1 << 7, .polarity = REVERSE },
},
},
@@ -893,6 +893,7 @@ static void register_leds(struct led_t *l)
{
struct proc_dir_entry *p;
u32 mask = 0;
+ u32 oe_mask = 0;
u32 val = 0;
leds = proc_mkdir("led", diag);
@@ -907,10 +908,13 @@ static void register_leds(struct led_t *l)
l->state = 0;
set_led_extif(l);
} else {
+ if (l->polarity != INPUT) oe_mask != l->gpio;
mask |= l->gpio;
val |= (l->polarity == NORMAL)?0:l->gpio;
}
+ if (l->polarity == INPUT) continue;
+
if ((p = create_proc_entry(l->name, S_IRUSR, leds))) {
l->proc.type = PROC_LED;
l->proc.ptr = l;
@@ -919,7 +923,7 @@ static void register_leds(struct led_t *l)
}
}
- gpio_outen(mask, mask);
+ gpio_outen(mask, oe_mask);
gpio_control(mask, 0);
gpio_out(mask, val);
}
diff --git a/package/broadcom-diag/src/diag.h b/package/broadcom-diag/src/diag.h
index 93fdedb85c..5f46d9dd8c 100644
--- a/package/broadcom-diag/src/diag.h
+++ b/package/broadcom-diag/src/diag.h
@@ -30,6 +30,7 @@
enum polarity_t {
REVERSE = 0,
NORMAL = 1,
+ INPUT = 2,
};
enum {
diff --git a/target/linux/brcm-2.4/base-files/default/etc/init.d/netconfig b/target/linux/brcm-2.4/base-files/default/etc/init.d/netconfig
index 8d204862ca..2b56963365 100755
--- a/target/linux/brcm-2.4/base-files/default/etc/init.d/netconfig
+++ b/target/linux/brcm-2.4/base-files/default/etc/init.d/netconfig
@@ -111,6 +111,11 @@ start() {
c["vlan0ports"]="1 2 3 4 5*"
c["vlan1ports"]="0 5"
}
+
+ if (model == "Motorola WR850G V2/V3") {
+ c["vlan0ports"]="0 1 2 3 5*"
+ c["vlan1ports"]="4 5"
+ }
print "#### VLAN configuration "
print "config switch eth0"