X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/1dcc8eb95bdfca4d0b492f3bdbec2ca632f47c74..58065e3715b7d2684df76d2f125da422d6dcf2b2:/openwrt/package/linux/kernel-source/drivers/net/diag/diag_led.c diff --git a/openwrt/package/linux/kernel-source/drivers/net/diag/diag_led.c b/openwrt/package/linux/kernel-source/drivers/net/diag/diag_led.c index 9945dbe00..00d19cd52 100644 --- a/openwrt/package/linux/kernel-source/drivers/net/diag/diag_led.c +++ b/openwrt/package/linux/kernel-source/drivers/net/diag/diag_led.c @@ -27,6 +27,7 @@ * 2004/08/26 asus & buffalo support added * 2005/03/14 asus wl-500g deluxe and buffalo v2 support added * 2005/04/13 added licensing informations + * 2005/04/18 base reset polarity off initial readings */ #include @@ -91,8 +92,6 @@ static unsigned int diag = 0; static void diag_change() { - //printk(KERN_INFO "led -> %02x\n",diag); - set_diag(0xFF); // off set_dmz(0xFF); // off @@ -172,7 +171,6 @@ static int __init diag_init() set_dmz=ignore; if ((board_type & 0xf00) == 0x400) { - board_type=1; buf=nvram_get("boardtype")?:""; if (!strcmp(buf,"bcm94710dev")) { buf=nvram_get("boardnum")?:""; @@ -181,57 +179,51 @@ static int __init diag_init() set_diag=v1_set_diag; set_dmz=v1_set_dmz; reset_gpio=(1<<6); - reset_polarity=0; - } else if (!strcmp(buf,"asusX")) { + } + if (!strcmp(buf,"asusX")) { //asus wl-500g - //no leds reset_gpio=(1<<6); - reset_polarity=1; } - } else if (!strcmp(buf,"bcm94710ap")) { + } + if (!strcmp(buf,"bcm94710ap")) { 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")) { + } + if (!strcmp(buf,"44")) { //dell truemobile set_dmz=v2_set_dmz; reset_gpio=(1<<0); - reset_polarity=0; } } } else { - board_type=2; - set_diag=v2_set_diag; - set_dmz=v2_set_dmz; - reset_gpio=(1<<6); - reset_polarity=0; buf=nvram_get("boardnum")?:""; + if (!strcmp(buf,"42")) { + //linksys + set_diag=v2_set_diag; + set_dmz=v2_set_dmz; + reset_gpio=(1<<6); + } if (!strcmp(buf,"44")) { //motorola - set_diag=ignore; - set_dmz=ignore; reset_gpio=(1<<5); - reset_polarity=0; } if (!strcmp(buf,"00")) { //buffalo - set_diag=ignore; - set_dmz=ignore; reset_gpio=(1<<7); - reset_polarity=1; } if (!strcmp(buf,"45")) { //wl-500g deluxe - set_diag=ignore; - set_dmz=ignore; reset_gpio=(1<<6); - reset_polarity=1; } } - printk(KERN_INFO "using v%d hardware\n",board_type); + + + sb_gpiocontrol(sbh,reset_gpio,reset_gpio); + sb_gpioouten(sbh,reset_gpio,0); + reset_polarity=!(sb_gpioin(sbh)&reset_gpio); diag_sysctl_header = register_sysctl_table(sys_diag, 0); diag_change();