[package] prevent kmod-switch from accessing nvram on brcm63xx (#5035)
[openwrt-10.03/.git] / package / switch / src / switch-robo.c
index 5733d5024e4069e43b20164af56276425f64fe93..95cb3e23f7d60c0d760466cb2c066775092d87d5 100644 (file)
 #define bool int
 #endif
 
+/* Only available on brcm-2.4/brcm47xx */
+#ifdef BROADCOM
+extern char *nvram_get(const char *name);
+#define getvar(str) (nvram_get(str)?:"")
+#else
+#define getvar(str) NULL
+#endif
+
 /* Data structure for a Roboswitch device. */
 struct robo_switch {
        char *device;                   /* The device name string (ethX) */
@@ -271,8 +279,9 @@ static int robo_switch_enable(void)
                        robo_write16(ROBO_CTRL_PAGE, i, 0);
        }
 
-       /* WAN port LED */
-       robo_write16(ROBO_CTRL_PAGE, 0x16, 0x1F);
+       /* WAN port LED, except for Netgear WGT634U */
+       if (strcmp(getvar("nvram_type"), "cfe") != 0)
+               robo_write16(ROBO_CTRL_PAGE, 0x16, 0x1F);
 
        return 0;
 }