diff options
author | marius <marius@FreeBSD.org> | 2009-03-19 22:34:55 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2009-03-19 22:34:55 +0000 |
commit | 783a250e72fa461c162c4c31070c7a2cefa9f8aa (patch) | |
tree | a83ff9f5d1a5d297eaa4c1873aa60c523eabc7fe /sys/dev/dc | |
parent | e24015abe482676abb262d5f2e9c9db2ddbfa123 (diff) | |
download | FreeBSD-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.c | 14 | ||||
-rw-r--r-- | sys/dev/dc/pnphy.c | 17 |
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); |