summaryrefslogtreecommitdiffstats
path: root/sys/dev/mii/brgphy.c
diff options
context:
space:
mode:
authordavidch <davidch@FreeBSD.org>2007-06-08 02:34:44 +0000
committerdavidch <davidch@FreeBSD.org>2007-06-08 02:34:44 +0000
commit5740b4bccdc10d36c1ca486f654fee4d13cfe3e3 (patch)
treeddce1493d92baa1e4853320140ae3a8700b40cb3 /sys/dev/mii/brgphy.c
parentabf8c6f8db906260f07bc3c7256b8bdff767dba9 (diff)
downloadFreeBSD-src-5740b4bccdc10d36c1ca486f654fee4d13cfe3e3.zip
FreeBSD-src-5740b4bccdc10d36c1ca486f654fee4d13cfe3e3.tar.gz
- Fixed a problem that caused autonegotiation failures.
Submitted by: tor.egge@cvsup.no.freebsd.org MFC after: 4 weeks
Diffstat (limited to 'sys/dev/mii/brgphy.c')
-rw-r--r--sys/dev/mii/brgphy.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/dev/mii/brgphy.c b/sys/dev/mii/brgphy.c
index ae0da30..d35125e 100644
--- a/sys/dev/mii/brgphy.c
+++ b/sys/dev/mii/brgphy.c
@@ -238,6 +238,9 @@ brgphy_attach(device_t dev)
brgphy_reset(sc);
+ sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask;
+ if (sc->mii_capabilities & BMSR_EXTSTAT)
+ sc->mii_extcapabilities = PHY_READ(sc, MII_EXTSR);
device_printf(dev, " ");
#define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL)
@@ -262,9 +265,10 @@ brgphy_attach(device_t dev)
if (fast_ether == 0) {
ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_T, 0, sc->mii_inst),
BRGPHY_S1000);
+ printf("1000baseT, ");
ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_T, IFM_FDX, sc->mii_inst),
BRGPHY_S1000 | BRGPHY_BMCR_FDX);
- printf("1000baseTX-FDX, ");
+ printf("1000baseT-FDX, ");
}
} else {
ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_SX, IFM_FDX, sc->mii_inst),
OpenPOWER on IntegriCloud