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 <nlhintz@hotmail.com>

SVN-Revision: 34992
This commit is contained in:
Hauke Mehrtens
2013-01-03 01:58:01 +00:00
parent 63ec34612c
commit d8f1fa1e38
6 changed files with 155 additions and 35 deletions

View File

@@ -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));