summaryrefslogtreecommitdiffstats
path: root/sys/dev/dc
diff options
context:
space:
mode:
authormarius <marius@FreeBSD.org>2009-03-19 22:34:55 +0000
committermarius <marius@FreeBSD.org>2009-03-19 22:34:55 +0000
commit783a250e72fa461c162c4c31070c7a2cefa9f8aa (patch)
treea83ff9f5d1a5d297eaa4c1873aa60c523eabc7fe /sys/dev/dc
parente24015abe482676abb262d5f2e9c9db2ddbfa123 (diff)
downloadFreeBSD-src-783a250e72fa461c162c4c31070c7a2cefa9f8aa.zip
FreeBSD-src-783a250e72fa461c162c4c31070c7a2cefa9f8aa.tar.gz
- Set MIIF_NOLOOP and don't add IFM_LOOP as loopback apparently isn't
supported with these pseudo-PHYs. The MIIF_NOLOOP flag currently triggers nothing but hopefully will be respected by mii_phy_setmedia() later on. - Don't add IFM_NONE as isolation isn't supported by these pseudo-PHYs. - Use mii_phy_add_media() instead of mii_add_media() so the latter can be eventually retired.
Diffstat (limited to 'sys/dev/dc')
-rw-r--r--sys/dev/dc/dcphy.c14
-rw-r--r--sys/dev/dc/pnphy.c17
2 files changed, 12 insertions, 19 deletions
diff --git a/sys/dev/dc/dcphy.c b/sys/dev/dc/dcphy.c
index 2033577..a4df704 100644
--- a/sys/dev/dc/dcphy.c
+++ b/sys/dev/dc/dcphy.c
@@ -154,13 +154,12 @@ dcphy_attach(device_t dev)
sc->mii_service = dcphy_service;
sc->mii_pdata = mii;
- sc->mii_flags |= MIIF_NOISOLATE;
- mii->mii_instance++;
-
-#define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL)
+ /*
+ * Apparently, we can neither isolate nor do loopback.
+ */
+ sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP;
- ADD(IFM_MAKEWORD(IFM_ETHER, IFM_NONE, 0, sc->mii_inst),
- BMCR_ISO);
+ mii->mii_instance++;
/*dcphy_reset(sc);*/
dc_sc = mii->mii_ifp->if_softc;
@@ -186,9 +185,8 @@ dcphy_attach(device_t dev)
sc->mii_capabilities &= ma->mii_capmask;
device_printf(dev, " ");
- mii_add_media(sc);
+ mii_phy_add_media(sc);
printf("\n");
-#undef ADD
MIIBUS_MEDIAINIT(sc->mii_dev);
return (0);
diff --git a/sys/dev/dc/pnphy.c b/sys/dev/dc/pnphy.c
index e78ccf3..d1282a7 100644
--- a/sys/dev/dc/pnphy.c
+++ b/sys/dev/dc/pnphy.c
@@ -137,24 +137,19 @@ pnphy_attach(device_t dev)
sc->mii_service = pnphy_service;
sc->mii_pdata = mii;
- sc->mii_flags |= MIIF_NOISOLATE;
- mii->mii_instance++;
+ /*
+ * Apparently, we can neither isolate nor do loopback.
+ */
+ sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP;
-#define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL)
+ mii->mii_instance++;
sc->mii_capabilities =
BMSR_100TXFDX | BMSR_100TXHDX | BMSR_10TFDX | BMSR_10THDX;
sc->mii_capabilities &= ma->mii_capmask;
device_printf(dev, " ");
- mii_add_media(sc);
+ mii_phy_add_media(sc);
printf("\n");
- ADD(IFM_MAKEWORD(IFM_ETHER, IFM_NONE, 0, sc->mii_inst),
- BMCR_ISO);
-
- ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_LOOP, sc->mii_inst),
- BMCR_LOOP|BMCR_S100);
-
-#undef ADD
MIIBUS_MEDIAINIT(sc->mii_dev);
return (0);
OpenPOWER on IntegriCloud