Add support for flow control.

Obtained from:	NetBSD (partially)
This commit is contained in:
Marius Strobl 2010-11-22 21:24:29 +00:00
parent b84d962610
commit 4b9b1e1163
3 changed files with 10 additions and 6 deletions

View File

@ -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

View File

@ -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

View File

@ -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