From e2a6028da3eccac80337a17129174ae2d7716b66 Mon Sep 17 00:00:00 2001 From: hauke Date: Thu, 3 Jan 2013 01:53:30 +0000 Subject: brcm47xx: add a new version of the nvram rewrite patch This is the version like it was send for mainline inclusion. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34988 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/switch/src/switch-adm.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'package/switch/src/switch-adm.c') diff --git a/package/switch/src/switch-adm.c b/package/switch/src/switch-adm.c index 9a6d32b1e..f21470ed5 100644 --- a/package/switch/src/switch-adm.c +++ b/package/switch/src/switch-adm.c @@ -38,7 +38,7 @@ #include "gpio.h" #ifdef CONFIG_BCM47XX -#include +#include #endif #define DRIVER_NAME "adm6996" @@ -89,7 +89,7 @@ static unsigned int get_gpiopin(char *pin_name, unsigned int def_pin) /* Go thru all possibilities till a match in pin name */ for (pin = 0; pin < 16; pin ++) { sprintf(name, "gpio%d", pin); - if (nvram_getenv(name, val, sizeof(val)) >= 0) { + if (bcm47xx_nvram_getenv(name, val, sizeof(val)) >= 0) { if (!strcmp(val, pin_name)) return pin; } @@ -497,10 +497,10 @@ static int detect_adm(void) int boardflags = 0; int boardnum = 0; - if (nvram_getenv("boardflags", buf, sizeof(buf)) >= 0) + if (bcm47xx_nvram_getenv("boardflags", buf, sizeof(buf)) >= 0) boardflags = simple_strtoul(buf, NULL, 0); - if (nvram_getenv("boardnum", buf, sizeof(buf)) >= 0) + if (bcm47xx_nvram_getenv("boardnum", buf, sizeof(buf)) >= 0) boardnum = simple_strtoul(buf, NULL, 0); if ((boardnum == 44) && (boardflags == 0x0388)) { /* Trendware TEW-411BRP+ */ @@ -519,9 +519,9 @@ static int detect_adm(void) eedi = get_gpiopin("adm_eedi", 4); eerc = get_gpiopin("adm_rc", 0); - } else if (nvram_getenv("boardtype", buf, sizeof(buf)) >= 0) { + } else if (bcm47xx_nvram_getenv("boardtype", buf, sizeof(buf)) >= 0) { if (strcmp(buf, "bcm94710dev") == 0) { - if (nvram_getenv("boardnum", buf, sizeof(buf)) >= 0) { + if (bcm47xx_nvram_getenv("boardnum", buf, sizeof(buf)) >= 0) { if (strncmp(buf, "42", 2) == 0) { /* WRT54G v1.1 hack */ eecs = 2; -- cgit v1.2.3 From e3a81c46a5b399e5579144aec5222d3c82055a63 Mon Sep 17 00:00:00 2001 From: hauke Date: Thu, 3 Jan 2013 01:58:01 +0000 Subject: switch: ROBO Switch Gigabit MII Support I wrote this patch some time ago because I had a need for one of the Gigabit ports (Linksys E3000) to be forced to 100FD. This is based on the robocfg sources included w/ the RT-N16 sources from ASUS. Since work is progressing on a BGMAC driver that could be included in OpenWRT, this may be useful to someone else. In testing, forcing the speed to 10/100 or 1000 worked fine; however, when trying to force full-duplex mode, the result was always half-duplex. I was not able to isolate the source of the problem (this patch, driver or H/W limitation). The only way I could get it to work was to set the port to Auto, but then only advertise 100FD (not included in this patch). I have a modified version of the robocfg package as well, I'd have to clean it up a little first (remove the full-duplex hack) before submitting it if there is interest. Signed-off-by: Nathan Hintz git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34992 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/switch/src/switch-adm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'package/switch/src/switch-adm.c') diff --git a/package/switch/src/switch-adm.c b/package/switch/src/switch-adm.c index f21470ed5..2d0fcc35a 100644 --- a/package/switch/src/switch-adm.c +++ b/package/switch/src/switch-adm.c @@ -386,7 +386,7 @@ static int handle_port_media_write(void *driver, char *buf, int nr) int media = switch_parse_media(buf); int reg = adm_rreg(0, port_conf[nr]); - if (media < 0) + if (media < 0 || media & SWITCH_MEDIA_1000) return -1; reg &= ~((1 << 1) | (1 << 2) | (1 << 3)); -- cgit v1.2.3 From d8af1489e0e3cbeba49897e8f6dee1572295dd43 Mon Sep 17 00:00:00 2001 From: hauke Date: Thu, 14 Feb 2013 12:36:52 +0000 Subject: switch: export name of device found via /proc git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35596 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/switch/src/switch-adm.c | 1 + 1 file changed, 1 insertion(+) (limited to 'package/switch/src/switch-adm.c') diff --git a/package/switch/src/switch-adm.c b/package/switch/src/switch-adm.c index 2d0fcc35a..8c0ddc6c9 100644 --- a/package/switch/src/switch-adm.c +++ b/package/switch/src/switch-adm.c @@ -578,6 +578,7 @@ static int __init adm_init(void) port_handlers: port, vlan_handlers: vlan, }; + snprintf(driver.dev_name, SWITCH_NAME_BUFSZ, DRIVER_NAME); if (!detect_adm()) return -ENODEV; -- cgit v1.2.3