-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi!
On Tue, 20 Nov 2007, Adalbert Prokop wrote:
Well, I hope someone can explain which values are possible for Asus
WL500GP. Going through the code will cost me rest of this year...
None. If I read the code correctly, Asus-routers just ignore writes to
/proc/sys/diag with 1.0.3-firmwares. I attached a patch which should add
the ability to switch the power-led on ASUS WL-500G (deluxe) and WL-500GP
by setting bit 1 of /proc/sys/diag.
Bye,
Holger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Made with pgp4pine 1.76
iD8DBQFHQ/OLV71P2fDJM84RAjB/AKCspP5Xi/o2bY1TuZIMkWUgOV1J5wCg4phz
NRqBn3bE5aV+D4YeXy7B7Bo=
=epeg
-----END PGP SIGNATURE-----
--- diag_led.c~ 2007-11-21 08:02:56.000000000 +0100
+++ diag_led.c 2007-11-21 08:02:56.000000000 +0100
@@ -94,22 +94,33 @@ static void ignore(u8 ignored) {};
// - - - - -
#define BIT_DMZ (1 << 0)
#define BIT_DIAG (1 << 2)
+#define BIT_POWER (1 << 1)
#define BIT_SES (BITS(3) << 3)
void (*set_diag)(u8 state);
void (*set_dmz)(u8 state);
void (*set_ses)(u8 state);
+void (*set_power)(u8 state);
static unsigned int diag_reverse = 1;
static unsigned int ses_reverse = 1;
static unsigned int diag = 0;
+static unsigned int power_gpio= 0;
+static unsigned int power_reverse = 0;
+
+static void v2_set_power(u8 state) {
+ set_gpio(power_gpio,state);
+}
static void diag_change()
{
set_diag(diag_reverse ? 0xFF : 0x00); // off
set_dmz(diag_reverse ? 0xFF : 0x00); // off
set_ses(ses_reverse ? 0xFF : 0x00); // off
+ set_power(power_reverse ? 0xFF : 0x00); // on
+ if(diag & BIT_POWER)
+ set_power(power_reverse ? 0x00 : 0xFF); // on
if(diag & BIT_DIAG)
set_diag(diag_reverse ? 0x00 : 0xFF); // on
if(diag & BIT_DMZ)
@@ -212,6 +223,7 @@ static int __init diag_init()
set_diag=ignore;
set_dmz=ignore;
set_ses=ignore;
+ set_power=ignore;
buf=nvram_get("pmon_ver") ?: "";
if (((board_type & 0xf00) == 0x400) && (strncmp(buf, "CFE", 3) != 0)) {
@@ -226,6 +238,9 @@ static int __init diag_init()
}
if (!strcmp(buf,"asusX")) {
//asus wl-500g
+ set_power=v2_set_power;
+ power_gpio=(1<<0);
+ power_reverse=1;
reset_gpio=(1<<6);
}
}
@@ -276,10 +291,16 @@ static int __init diag_init()
printk("diag: Asus WL500g premium found\n");
// special button reset_gpio=(1<<4);
reset_gpio=(1<<0);
+ power_gpio=(1<<1);
+ power_reverse=1;
+ set_power=v2_set_power;
} else {
//wl-500g deluxe
printk("diag: Asus WL500g deluxe found\n");
reset_gpio=(1<<6);
+ power_gpio=(1<<0);
+ power_reverse=1;
+ set_power=v2_set_power;
}
}
}
_______________________________________________
freewrt-users mailing list
[email protected]
https://www.freewrt.org/lists/listinfo/freewrt-users