summaryrefslogtreecommitdiffstats
path: root/sys/dev/mii
diff options
context:
space:
mode:
authormarius <marius@FreeBSD.org>2007-01-12 22:59:38 +0000
committermarius <marius@FreeBSD.org>2007-01-12 22:59:38 +0000
commitaef9ed21c43e2e9ba80c5a19e1b92a7f0c2e04f1 (patch)
treecc07ee2eb30a014825c6e06060cf46592c6d499b /sys/dev/mii
parent00847f758eff75a74ca1bc9b5eb331d7bacfe433 (diff)
downloadFreeBSD-src-aef9ed21c43e2e9ba80c5a19e1b92a7f0c2e04f1.zip
FreeBSD-src-aef9ed21c43e2e9ba80c5a19e1b92a7f0c2e04f1.tar.gz
Set MIIF_HAVE_FIBER and add IFM_100_FX media when the AC_MCTL_FX_SEL
and thus the FX_DIS pin indicates fibre media. This is part 1/2 of adding support for the 100baseFX interface/port of AT-2700 series adaptors. Idea from: NetBSD MFC after: 1 week
Diffstat (limited to 'sys/dev/mii')
-rw-r--r--sys/dev/mii/acphy.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/sys/dev/mii/acphy.c b/sys/dev/mii/acphy.c
index 963415e..4f3e9f1 100644
--- a/sys/dev/mii/acphy.c
+++ b/sys/dev/mii/acphy.c
@@ -156,6 +156,19 @@ acphy_attach(device_t dev)
sc->mii_capabilities =
PHY_READ(sc, MII_BMSR) & ma->mii_capmask;
device_printf(dev, " ");
+
+#define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL)
+ if ((PHY_READ(sc, MII_ACPHY_MCTL) & AC_MCTL_FX_SEL) != 0) {
+ sc->mii_flags |= MIIF_HAVEFIBER;
+ ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_FX, 0, sc->mii_inst),
+ MII_MEDIA_100_TX);
+ printf("100baseFX, ");
+ ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_FX, IFM_FDX, sc->mii_inst),
+ MII_MEDIA_100_TX_FDX);
+ printf("100baseFX-FDX, ");
+ }
+#undef ADD
+
mii_phy_add_media(sc);
printf("\n");
OpenPOWER on IntegriCloud