Lines Matching +full:link +full:- +full:loss +full:- +full:low
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
111 struct ifmedia_entry *ife = mii->mii_media.ifm_cur; in atphy_service()
119 if (IFM_SUBTYPE(ife->ifm_media) == IFM_AUTO || in atphy_service()
120 IFM_SUBTYPE(ife->ifm_media) == IFM_1000_T) { in atphy_service()
121 atphy_setmedia(sc, ife->ifm_media); in atphy_service()
126 switch (IFM_SUBTYPE(ife->ifm_media)) { in atphy_service()
150 if ((ife->ifm_media & IFM_FDX) != 0) { in atphy_service()
152 if ((ife->ifm_media & IFM_FLOW) != 0 || in atphy_service()
153 (sc->mii_flags & MIIF_FORCEPAUSE) != 0) in atphy_service()
157 if ((sc->mii_extcapabilities & (EXTSR_1000TFDX | in atphy_service()
174 if (IFM_SUBTYPE(ife->ifm_media) != IFM_AUTO) { in atphy_service()
175 sc->mii_ticks = 0; in atphy_service()
180 * Check for link. in atphy_service()
181 * Read the status register twice; BMSR_LINK is latch-low. in atphy_service()
185 sc->mii_ticks = 0; in atphy_service()
189 /* Announce link loss right after it happens. */ in atphy_service()
190 if (sc->mii_ticks++ == 0) in atphy_service()
192 if (sc->mii_ticks <= sc->mii_anegticks) in atphy_service()
195 sc->mii_ticks = 0; in atphy_service()
196 atphy_setmedia(sc, ife->ifm_media); in atphy_service()
211 struct mii_data *mii = sc->mii_pdata; in atphy_status()
214 mii->mii_media_status = IFM_AVALID; in atphy_status()
215 mii->mii_media_active = IFM_ETHER; in atphy_status()
219 mii->mii_media_status |= IFM_ACTIVE; in atphy_status()
223 mii->mii_media_active |= IFM_NONE; in atphy_status()
224 mii->mii_media_status = 0; in atphy_status()
229 mii->mii_media_active |= IFM_LOOP; in atphy_status()
234 mii->mii_media_active |= IFM_NONE; in atphy_status()
240 mii->mii_media_active |= IFM_1000_T; in atphy_status()
242 * atphy(4) has a valid link so reset mii_ticks. in atphy_status()
244 * detect link loss after auto-negotiation. in atphy_status()
246 sc->mii_ticks = 0; in atphy_status()
249 mii->mii_media_active |= IFM_100_TX; in atphy_status()
250 sc->mii_ticks = 0; in atphy_status()
253 mii->mii_media_active |= IFM_10_T; in atphy_status()
254 sc->mii_ticks = 0; in atphy_status()
257 mii->mii_media_active |= IFM_NONE; in atphy_status()
262 mii->mii_media_active |= IFM_FDX | mii_phy_flowstatus(sc); in atphy_status()
264 mii->mii_media_active |= IFM_HDX; in atphy_status()
266 if ((IFM_SUBTYPE(mii->mii_media_active) == IFM_1000_T) && in atphy_status()
268 mii->mii_media_active |= IFM_ETH_MASTER; in atphy_status()
274 struct ifmedia_entry *ife = sc->mii_pdata->mii_media.ifm_cur; in atphy_reset()
294 atphy_setmedia(sc, ife == NULL ? IFM_AUTO : ife->ifm_media); in atphy_reset()
309 switch (IFM_SUBTYPE(ife->ifm_media)) { in atphy_anar()
325 if ((ife->ifm_media & IFM_FDX) != 0) { in atphy_anar()
326 if (IFM_SUBTYPE(ife->ifm_media) == IFM_100_TX) in atphy_anar()
340 anar = BMSR_MEDIA_TO_ANAR(sc->mii_capabilities) | ANAR_CSMA; in atphy_setmedia()
343 (sc->mii_flags & MIIF_FORCEPAUSE) != 0)) in atphy_setmedia()
346 if ((sc->mii_extcapabilities & in atphy_setmedia()
350 else if (sc->mii_mpd_model == MII_MODEL_xxATHEROS_F1) { in atphy_setmedia()
354 * ability to establish gigabit link so explicitly in atphy_setmedia()
357 * not establish a link against gigabit link partner in atphy_setmedia()
358 * unless the link partner supports down-shifting. in atphy_setmedia()