Lines Matching +full:pre +full:- +full:emphasis

1 /*-
2 * SPDX-License-Identifier: BSD-4-Clause
18 * 4. Neither the name of the author nor the names of any co-contributors
176 { 0x57081011, "IBM eServer BladeCenter HS21 -[8853PAU]-" },
190 if (bce_sc->bce_chipid == hs21_type_lists[i].id && in detect_hs21()
219 sc = &bsc->mii_sc; in brgphy_attach()
224 bsc->serdes_flags = 0; in brgphy_attach()
233 switch (sc->mii_mpd_oui) { in brgphy_attach()
235 switch (sc->mii_mpd_model) { in brgphy_attach()
249 bsc->serdes_flags |= BRGPHY_5706S; in brgphy_attach()
250 sc->mii_flags |= MIIF_HAVEFIBER; in brgphy_attach()
256 switch (sc->mii_mpd_model) { in brgphy_attach()
258 bsc->serdes_flags |= BRGPHY_5708S; in brgphy_attach()
259 sc->mii_flags |= MIIF_HAVEFIBER; in brgphy_attach()
268 bsc->serdes_flags |= BRGPHY_5708S; in brgphy_attach()
270 bsc->serdes_flags |= BRGPHY_5709S; in brgphy_attach()
271 sc->mii_flags |= MIIF_HAVEFIBER; in brgphy_attach()
280 sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & sc->mii_capmask; in brgphy_attach()
281 if (sc->mii_capabilities & BMSR_EXTSTAT) in brgphy_attach()
282 sc->mii_extcapabilities = PHY_READ(sc, MII_EXTSR); in brgphy_attach()
286 if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) { in brgphy_attach()
290 sc->mii_anegticks = MII_ANEGTICKS_GIGE; in brgphy_attach()
291 ifmedia_add(&sc->mii_pdata->mii_media, in brgphy_attach()
292 IFM_MAKEWORD(IFM_ETHER, IFM_1000_SX, IFM_FDX, sc->mii_inst), in brgphy_attach()
294 printf("1000baseSX-FDX, "); in brgphy_attach()
299 if (bce_sc && (bce_sc->bce_phy_flags & in brgphy_attach()
301 ifmedia_add(&sc->mii_pdata->mii_media, in brgphy_attach()
303 sc->mii_inst), 0, NULL); in brgphy_attach()
304 printf("2500baseSX-FDX, "); in brgphy_attach()
305 } else if ((bsc->serdes_flags & BRGPHY_5708S) && bce_sc && in brgphy_attach()
310 * this driver wating for the auto-negotiation to in brgphy_attach()
312 * only and when the 1000baseSX-FDX is the only in brgphy_attach()
316 printf("auto-neg workaround, "); in brgphy_attach()
317 bsc->serdes_flags |= BRGPHY_NOANWAIT; in brgphy_attach()
319 ifmedia_add(&sc->mii_pdata->mii_media, IFM_MAKEWORD(IFM_ETHER, in brgphy_attach()
320 IFM_AUTO, 0, sc->mii_inst), 0, NULL); in brgphy_attach()
324 MIIBUS_MEDIAINIT(sc->mii_dev); in brgphy_attach()
331 struct ifmedia_entry *ife = mii->mii_media.ifm_cur; in brgphy_service()
339 PHY_RESET(sc); /* XXX hardware bug work-around */ in brgphy_service()
341 switch (IFM_SUBTYPE(ife->ifm_media)) { in brgphy_service()
343 brgphy_mii_phy_auto(sc, ife->ifm_media); in brgphy_service()
350 brgphy_setmedia(sc, ife->ifm_media); in brgphy_service()
358 if (IFM_SUBTYPE(ife->ifm_media) != IFM_AUTO) { in brgphy_service()
359 sc->mii_ticks = 0; in brgphy_service()
369 sc->mii_ticks = 0; /* Reset autoneg timer. */ in brgphy_service()
374 if (sc->mii_ticks++ == 0) in brgphy_service()
378 if (sc->mii_ticks <= sc->mii_anegticks) in brgphy_service()
382 sc->mii_ticks = 0; in brgphy_service()
383 brgphy_mii_phy_auto(sc, ife->ifm_media); in brgphy_service()
394 if (sc->mii_media_active != mii->mii_media_active || in brgphy_service()
395 sc->mii_media_status != mii->mii_media_status || in brgphy_service()
397 switch (sc->mii_mpd_oui) { in brgphy_service()
399 switch (sc->mii_mpd_model) { in brgphy_service()
404 if (sc->mii_mpd_rev == 1 || sc->mii_mpd_rev == 3) in brgphy_service()
416 switch (sc->mii_mpd_model) { in brgphy_service()
493 struct mii_data *mii = sc->mii_pdata; in brgphy_status()
497 mii->mii_media_status = IFM_AVALID; in brgphy_status()
498 mii->mii_media_active = IFM_ETHER; in brgphy_status()
504 mii->mii_media_active |= IFM_LOOP; in brgphy_status()
509 (bsc->serdes_flags & BRGPHY_NOANWAIT) == 0) { in brgphy_status()
511 mii->mii_media_active |= IFM_NONE; in brgphy_status()
515 if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) { in brgphy_status()
526 mii->mii_media_status |= IFM_ACTIVE; in brgphy_status()
529 mii->mii_media_active |= IFM_1000_T | IFM_FDX; break; in brgphy_status()
531 mii->mii_media_active |= IFM_1000_T | IFM_HDX; break; in brgphy_status()
533 mii->mii_media_active |= IFM_100_TX | IFM_FDX; break; in brgphy_status()
535 mii->mii_media_active |= IFM_100_T4; break; in brgphy_status()
537 mii->mii_media_active |= IFM_100_TX | IFM_HDX; break; in brgphy_status()
539 mii->mii_media_active |= IFM_10_T | IFM_FDX; break; in brgphy_status()
541 mii->mii_media_active |= IFM_10_T | IFM_HDX; break; in brgphy_status()
543 mii->mii_media_active |= IFM_NONE; break; in brgphy_status()
546 if ((mii->mii_media_active & IFM_FDX) != 0) in brgphy_status()
547 mii->mii_media_active |= flowstat; in brgphy_status()
549 if (IFM_SUBTYPE(mii->mii_media_active) == IFM_1000_T && in brgphy_status()
551 mii->mii_media_active |= IFM_ETH_MASTER; in brgphy_status()
557 mii->mii_media_status |= IFM_ACTIVE; in brgphy_status()
561 if (bsc->serdes_flags & BRGPHY_5706S) { in brgphy_status()
562 mii->mii_media_active |= IFM_1000_SX; in brgphy_status()
568 mii->mii_media_active |= IFM_FDX; in brgphy_status()
570 mii->mii_media_active |= IFM_HDX; in brgphy_status()
572 } else if (bsc->serdes_flags & BRGPHY_5708S) { in brgphy_status()
576 /* Check for MRBE auto-negotiated speed results. */ in brgphy_status()
579 mii->mii_media_active |= IFM_10_FL; break; in brgphy_status()
581 mii->mii_media_active |= IFM_100_FX; break; in brgphy_status()
583 mii->mii_media_active |= IFM_1000_SX; break; in brgphy_status()
585 mii->mii_media_active |= IFM_2500_SX; break; in brgphy_status()
588 /* Check for MRBE auto-negotiated duplex results. */ in brgphy_status()
590 mii->mii_media_active |= IFM_FDX; in brgphy_status()
592 mii->mii_media_active |= IFM_HDX; in brgphy_status()
593 } else if (bsc->serdes_flags & BRGPHY_5709S) { in brgphy_status()
601 /* Check for MRBE auto-negotiated speed results. */ in brgphy_status()
604 mii->mii_media_active |= IFM_10_FL; break; in brgphy_status()
606 mii->mii_media_active |= IFM_100_FX; break; in brgphy_status()
608 mii->mii_media_active |= IFM_1000_SX; break; in brgphy_status()
610 mii->mii_media_active |= IFM_2500_SX; break; in brgphy_status()
613 /* Check for MRBE auto-negotiated duplex results. */ in brgphy_status()
615 mii->mii_media_active |= IFM_FDX; in brgphy_status()
617 mii->mii_media_active |= IFM_HDX; in brgphy_status()
629 if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) { in brgphy_mii_phy_auto()
630 anar = BMSR_MEDIA_TO_ANAR(sc->mii_capabilities) | ANAR_CSMA; in brgphy_mii_phy_auto()
632 (sc->mii_flags & MIIF_FORCEPAUSE) != 0) in brgphy_mii_phy_auto()
636 if (sc->mii_mpd_model == MII_MODEL_BROADCOM_BCM5701) in brgphy_mii_phy_auto()
643 (sc->mii_flags & MIIF_FORCEPAUSE) != 0) in brgphy_mii_phy_auto()
875 if (!(sc->mii_flags & (MIIF_RX_DELAY | MIIF_TX_DELAY))) in brgphy_bcm54xx_clock_delay()
883 if (sc->mii_flags & MIIF_RX_DELAY) in brgphy_bcm54xx_clock_delay()
893 if (sc->mii_flags & MIIF_TX_DELAY) in brgphy_bcm54xx_clock_delay()
908 if (sc->mii_mpd_model == MII_MODEL_BROADCOM_BCM5401) { in brgphy_jumbo_settings()
909 /* BCM5401 PHY cannot read-modify-write. */ in brgphy_jumbo_settings()
957 switch (sc->mii_mpd_oui) { in brgphy_reset()
959 switch (sc->mii_mpd_model) { in brgphy_reset()
964 if (sc->mii_mpd_rev == 1 || sc->mii_mpd_rev == 3) in brgphy_reset()
976 switch (sc->mii_mpd_model) { in brgphy_reset()
988 ifp = sc->mii_pdata->mii_ifp; in brgphy_reset()
998 if (bge_sc->bge_phy_flags & BGE_PHY_5704_A0_BUG) in brgphy_reset()
1000 if (bge_sc->bge_phy_flags & BGE_PHY_ADC_BUG) in brgphy_reset()
1002 if (bge_sc->bge_phy_flags & BGE_PHY_ADJUST_TRIM) in brgphy_reset()
1004 if (bge_sc->bge_phy_flags & BGE_PHY_BER_BUG) in brgphy_reset()
1006 if (bge_sc->bge_phy_flags & BGE_PHY_CRC_BUG) in brgphy_reset()
1008 if (bge_sc->bge_phy_flags & BGE_PHY_JITTER_BUG) in brgphy_reset()
1011 if (bge_sc->bge_flags & BGE_FLAG_JUMBO) in brgphy_reset()
1014 if ((bge_sc->bge_phy_flags & BGE_PHY_NO_WIRESPEED) == 0) in brgphy_reset()
1018 if (bge_sc->bge_phy_flags & BGE_PHY_NO_3LED) { in brgphy_reset()
1025 if (bge_sc->bge_asicrev == BGE_ASICREV_BCM5906) in brgphy_reset()
1029 (bce_sc->bce_phy_flags & BCE_PHY_SERDES_FLAG)) { in brgphy_reset()
1048 if (bce_sc->bce_phy_flags & BCE_PHY_2_5G_CAPABLE_FLAG) in brgphy_reset()
1065 /* Backplanes use special driver/pre-driver/pre-emphasis values. */ in brgphy_reset()
1066 if ((bce_sc->bce_shared_hw_cfg & BCE_SHARED_HW_CFG_PHY_BACKPLANE) && in brgphy_reset()
1067 (bce_sc->bce_port_hw_cfg & BCE_PORT_HW_CFG_CFG_TXCTL3_MASK)) { in brgphy_reset()
1071 bce_sc->bce_port_hw_cfg & in brgphy_reset()
1077 (bce_sc->bce_phy_flags & BCE_PHY_SERDES_FLAG)) { in brgphy_reset()
1090 if (bce_sc->bce_phy_flags & BCE_PHY_2_5G_CAPABLE_FLAG) in brgphy_reset()
1096 /* Select the Multi-Rate Backplane Ethernet block of the AN MMD. */ in brgphy_reset()