diff options
author | Paul Saab <ps@FreeBSD.org> | 2003-05-04 02:03:20 +0000 |
---|---|---|
committer | Paul Saab <ps@FreeBSD.org> | 2003-05-04 02:03:20 +0000 |
commit | 20430a6b04886a972708255c8d7d1a3b4b9fdb6b (patch) | |
tree | 77b58c4e59ac0346918d95695cd0f96241e089b2 /sys/dev/mii | |
parent | 8c787209180f6b3e3e9f4cec1b938e81d887f09b (diff) | |
download | src-20430a6b04886a972708255c8d7d1a3b4b9fdb6b.tar.gz src-20430a6b04886a972708255c8d7d1a3b4b9fdb6b.zip |
Something I missed in my tree.
If the media changes, poke the DSP on the 5401/5411 Broadcom PHY's.
Obtained from: NetBSD
Notes
Notes:
svn path=/head/; revision=114628
Diffstat (limited to 'sys/dev/mii')
-rw-r--r-- | sys/dev/mii/brgphy.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/sys/dev/mii/brgphy.c b/sys/dev/mii/brgphy.c index 7f426882d4cb..614d0af9a405 100644 --- a/sys/dev/mii/brgphy.c +++ b/sys/dev/mii/brgphy.c @@ -341,8 +341,24 @@ setit: /* Update the media status. */ brgphy_status(sc); - /* Callback if something changed. */ - mii_phy_update(sc, cmd); + /* + * Callback if something changed. Note that we need to poke + * the DSP on the Broadcom PHYs if the media changes. + * + */ + if (sc->mii_media_active != mii->mii_media_active || + sc->mii_media_status != mii->mii_media_status || + cmd == MII_MEDIACHG) { + mii_phy_update(sc, cmd); + switch (brgphy_mii_model) { + case MII_MODEL_xxBROADCOM_BCM5401: + bcm5401_load_dspcode(sc); + break; + case MII_MODEL_xxBROADCOM_BCM5411: + bcm5411_load_dspcode(sc); + break; + } + } return (0); } |