summaryrefslogtreecommitdiffstats
path: root/sys/dev/mii/amphy.c
diff options
context:
space:
mode:
authorjlemon <jlemon@FreeBSD.org>2001-09-29 19:18:52 +0000
committerjlemon <jlemon@FreeBSD.org>2001-09-29 19:18:52 +0000
commit6689cad44720247770c3439271c41126ceb5476e (patch)
treee747bfa7e8d363f3c895759cfbfa10fc7ec0841e /sys/dev/mii/amphy.c
parent8bad7ad549c81c7741eb484b254cbe6200cba4c3 (diff)
downloadFreeBSD-src-6689cad44720247770c3439271c41126ceb5476e.zip
FreeBSD-src-6689cad44720247770c3439271c41126ceb5476e.tar.gz
Cleanup pass for mii drivers.
. Make internal service routines static. . Use a consistent ordering of checks in MII_TICK. Do the work in the mii_phy_tick() subroutine if appropriate. . Call mii_phy_update() to trigger the callbacks.
Diffstat (limited to 'sys/dev/mii/amphy.c')
-rw-r--r--sys/dev/mii/amphy.c48
1 files changed, 7 insertions, 41 deletions
diff --git a/sys/dev/mii/amphy.c b/sys/dev/mii/amphy.c
index e873c85..8c78cf0 100644
--- a/sys/dev/mii/amphy.c
+++ b/sys/dev/mii/amphy.c
@@ -83,8 +83,8 @@ static driver_t amphy_driver = {
DRIVER_MODULE(amphy, miibus, amphy_driver, amphy_devclass, 0, 0);
-int amphy_service __P((struct mii_softc *, struct mii_data *, int));
-void amphy_status __P((struct mii_softc *));
+static int amphy_service __P((struct mii_softc *, struct mii_data *, int));
+static void amphy_status __P((struct mii_softc *));
static int amphy_probe(dev)
device_t dev;
@@ -167,7 +167,8 @@ static int amphy_detach(dev)
return(0);
}
-int
+
+static int
amphy_service(sc, mii, cmd)
struct mii_softc *sc;
struct mii_data *mii;
@@ -232,40 +233,8 @@ amphy_service(sc, mii, cmd)
*/
if (IFM_INST(ife->ifm_media) != sc->mii_inst)
return (0);
-
- /*
- * Only used for autonegotiation.
- */
- if (IFM_SUBTYPE(ife->ifm_media) != IFM_AUTO)
- return (0);
-
- /*
- * Is the interface even up?
- */
- if ((mii->mii_ifp->if_flags & IFF_UP) == 0)
+ if (mii_phy_tick(sc) == EJUSTRETURN)
return (0);
-
- /*
- * Only retry autonegotiation every 5 seconds.
- */
- if (++sc->mii_ticks != 5)
- return (0);
-
- sc->mii_ticks = 0;
-
- /*
- * Check to see if we have link. If we do, we don't
- * need to restart the autonegotiation process. Read
- * the BMSR twice in case it's latched.
- */
- reg = PHY_READ(sc, MII_BMSR) |
- PHY_READ(sc, MII_BMSR);
- if (reg & BMSR_LINK)
- break;
-
- mii_phy_reset(sc);
- if (mii_phy_auto(sc, 0) == EJUSTRETURN)
- return(0);
break;
}
@@ -273,14 +242,11 @@ amphy_service(sc, mii, cmd)
amphy_status(sc);
/* Callback if something changed. */
- if (sc->mii_active != mii->mii_media_active || cmd == MII_MEDIACHG) {
- MIIBUS_STATCHG(sc->mii_dev);
- sc->mii_active = mii->mii_media_active;
- }
+ mii_phy_update(sc, cmd);
return (0);
}
-void
+static void
amphy_status(sc)
struct mii_softc *sc;
{
OpenPOWER on IntegriCloud