sungem_phy: support bcm5461 phy, autoneg.
authorJens Osterkamp <jens@de.ibm.com>
Tue, 20 Feb 2007 22:30:50 +0000 (16:30 -0600)
committerJeff Garzik <jeff@garzik.org>
Tue, 27 Feb 2007 09:16:02 +0000 (04:16 -0500)
commiteb5b5b2ff96e8f3a42a46378968a166bb56bd900
tree8293f3718c436078af6108e13ffc8d965c5a39ec
parent6fedae1f6e66ab5f169bf58064e23e015fc1307d
sungem_phy: support bcm5461 phy, autoneg.

This version moves the medium variable to the card specific structure and
changes the GMII_* to BCM54XX_* #defines.

This patch adds improved version of enable_fiber for both the 5421 and
the 5461 phy. It is now possible to specify with these wether you want
autonegotiation or not. This is needed for bladecenter switches where
some expect autonegotiation and some dont seem to like this at all.
Depending on this flag it sets phy->autoneg accordingly for the fiber mode.

More importantly it implements proper read_link and poll_link functions
for both phys which can handle both copper and fiber mode by determining
the medium first and then branching to the required functions. For fiber
they all work fine, for copper they are not tested but return the result
of the genmii_* function anyway which is supposed to work.

The patch moves the genmii_* functions around to avoid foreward declarations.

Signed-off-by: Jens Osterkamp <jens@de.ibm.com>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/sungem_phy.c
drivers/net/sungem_phy.h