From 771f9f8f7b485d180abb55e4a2b9b0582a46e1e6 Mon Sep 17 00:00:00 2001
From: Mike Baker <mbm@openwrt.org>
Date: Mon, 18 Apr 2005 08:51:29 +0000
Subject: [PATCH] base reset polarity off initial readings

SVN-Revision: 672
---
 .../kernel-source/drivers/net/diag/diag_led.c | 25 +++++++++----------
 1 file changed, 12 insertions(+), 13 deletions(-)

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 9945dbe000..1c1a759e22 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 <linux/module.h>
@@ -181,12 +182,10 @@ 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")) {
 				//asus wl-500g
 				//no leds
 				reset_gpio=(1<<6);
-				reset_polarity=1;
 			}
 		} else if (!strcmp(buf,"bcm94710ap")) {
 			buf=nvram_get("boardnum")?:"";
@@ -194,44 +193,44 @@ static int __init diag_init()
 				// 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;
-		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();
-- 
GitLab