X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/f4da8cab588284adf82b8b8c4258493a1cc77e10..8e1843b7d1446bea148bb9c4c704be0e9c030e23:/obsolete-buildroot/sources/openwrt/kernel/diag.c?ds=sidebyside diff --git a/obsolete-buildroot/sources/openwrt/kernel/diag.c b/obsolete-buildroot/sources/openwrt/kernel/diag.c index 63a806cd7..41cb17bf4 100644 --- a/obsolete-buildroot/sources/openwrt/kernel/diag.c +++ b/obsolete-buildroot/sources/openwrt/kernel/diag.c @@ -3,6 +3,8 @@ // mbm at alt dot org // // initial release 2004/03/28 +// +// 2004/08/26 asus & buffalo support added #include #include @@ -13,6 +15,7 @@ #include #include +extern char * nvram_get(const char *name); static void *sbh; // v2.x - - - - - @@ -65,7 +68,7 @@ static unsigned int diag = 0; static void diag_change() { - printk(KERN_INFO "led -> %02x\n",diag); + //printk(KERN_INFO "led -> %02x\n",diag); set_diag(0xFF); // off set_dmz(0xFF); // off @@ -145,13 +148,9 @@ static int __init diag_init() set_diag=ignore; set_dmz=ignore; - if (board_type & 0x400) { + if ((board_type & 0xf00) == 0x400) { board_type=1; - set_diag=v1_set_diag; - set_dmz=v1_set_dmz; - buf=nvram_get("boardtype")?:""; - if (!strcmp(buf,"bcm94710dev")) { buf=nvram_get("boardnum")?:""; if (!strcmp(buf,"42")) { @@ -160,18 +159,25 @@ static int __init diag_init() set_dmz=v1_set_dmz; reset_gpio=(1<<6); reset_polarity=0; - } else (!strcmp(buf,"asusX")) { + } else if (!strcmp(buf,"asusX")) { //asus wl-500g //no leds reset_gpio=(1<<6); reset_polarity=1; } } else if (!strcmp(buf,"bcm94710ap")) { - // buffalo - set_diag=ignore; - set_dmz=v2_set_dmz; - reset_gpio=(1<<4); - reset_polarity=1; + buf=nvram_get("boardnum")?:""; + if (!strcmp(buf,"42")) { + // buffalo + set_dmz=v2_set_dmz; + reset_gpio=(1<<4); + reset_polarity=1; + } else if (!strcmp(buf,"44")) { + //dell truemobile + set_dmz=v2_set_dmz; + reset_gpio=(1<<0); + reset_polarity=0; + } } } else { board_type=2; @@ -179,6 +185,13 @@ static int __init diag_init() set_dmz=v2_set_dmz; reset_gpio=(1<<6); reset_polarity=0; + buf=nvram_get("boardnum")?:""; + if (!strcmp(buf,"44")) { + set_diag=ignore; + set_dmz=ignore; + reset_gpio=(1<<5); + reset_polarity=0; + } } printk(KERN_INFO "using v%d hardware\n",board_type);