diff options
author | marius <marius@FreeBSD.org> | 2010-11-22 21:24:29 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2010-11-22 21:24:29 +0000 |
commit | 769a0530db2555510f31ce423c36f12e90133eac (patch) | |
tree | 54ef15c58042b03cbb73f55a87794aa0a9a3f708 /sys/dev/mii | |
parent | 21423fafa1358a2a95acebce88a346050821d69e (diff) | |
download | FreeBSD-src-769a0530db2555510f31ce423c36f12e90133eac.zip FreeBSD-src-769a0530db2555510f31ce423c36f12e90133eac.tar.gz |
Add support for flow control.
Obtained from: NetBSD (partially)
Diffstat (limited to 'sys/dev/mii')
-rw-r--r-- | sys/dev/mii/bmtphy.c | 5 | ||||
-rw-r--r-- | sys/dev/mii/inphy.c | 5 | ||||
-rw-r--r-- | sys/dev/mii/nsphyter.c | 6 |
3 files changed, 10 insertions, 6 deletions
diff --git a/sys/dev/mii/bmtphy.c b/sys/dev/mii/bmtphy.c index 63d1df1..9d1225a 100644 --- a/sys/dev/mii/bmtphy.c +++ b/sys/dev/mii/bmtphy.c @@ -153,6 +153,8 @@ bmtphy_attach(device_t dev) sc->mii_service = bmtphy_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOMANPAUSE; + mii_phy_reset(sc); sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask; @@ -243,7 +245,8 @@ bmtphy_status(struct mii_softc *sc) else mii->mii_media_active |= IFM_10_T; if (aux_csr & AUX_CSR_FDX) - mii->mii_media_active |= IFM_FDX; + mii->mii_media_active |= + IFM_FDX | mii_phy_flowstatus(sc); else mii->mii_media_active |= IFM_HDX; } else diff --git a/sys/dev/mii/inphy.c b/sys/dev/mii/inphy.c index 6830b5a..1293641 100644 --- a/sys/dev/mii/inphy.c +++ b/sys/dev/mii/inphy.c @@ -113,6 +113,8 @@ inphy_attach(device_t dev) sc->mii_service = inphy_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOMANPAUSE; + ifmedia_add(&mii->mii_media, IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_LOOP, sc->mii_inst), MII_MEDIA_100_TX, NULL); @@ -197,7 +199,8 @@ inphy_status(struct mii_softc *sc) else mii->mii_media_active |= IFM_10_T; if (scr & SCR_FDX) - mii->mii_media_active |= IFM_FDX; + mii->mii_media_active |= + IFM_FDX | mii_phy_flowstatus(sc); else mii->mii_media_active |= IFM_HDX; } else diff --git a/sys/dev/mii/nsphyter.c b/sys/dev/mii/nsphyter.c index 5489504..c302181 100644 --- a/sys/dev/mii/nsphyter.c +++ b/sys/dev/mii/nsphyter.c @@ -143,6 +143,8 @@ nsphyter_attach(device_t dev) sc->mii_service = nsphyter_service; sc->mii_pdata = mii; + sc->mii_flags |= MIIF_NOMANPAUSE; + #if 1 #define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) @@ -242,12 +244,8 @@ nsphyter_status(struct mii_softc *sc) else mii->mii_media_active |= IFM_100_TX; if ((physts & PHYSTS_DUPLEX) != 0) -#ifdef notyet mii->mii_media_active |= IFM_FDX | mii_phy_flowstatus(sc); -#else - mii->mii_media_active |= IFM_FDX; -#endif else mii->mii_media_active |= IFM_HDX; } else |